云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Flex全局异常和错误处理

Flex全局异常和错误处理

  • 62 次阅读
  • 3 次下载
  • 2025/5/31 16:30:44

Flex全局异常和错误处理

从 Flash Player 10.1 和 Adobe AIR 2.0 开始,开发人员就能够全局地捕获未处理异常和错误。然而,注意在异常发生位置对异常进行处理是最好的方法。全局处理应该只用于您确实无法用其他方法控制的异步异常,或者未经本地捕获的诊断和日志异常。 在本文中,我将介绍如何使用 uncaughtError* 事件全局地捕获未处理异常或错误。我使用的技术是说明性的,且基于 MXML;它使用 Flex 特有的 [Mixin] 元数据标签。

要求

Flash Builder 4

? 下载试用

? Flash Player 10.1 示例文件

? global-exception-handler.zip 预备知识

对 Flex、MXML 和事件处理器的了解将有助于您理解本文。

处理未捕获错误

处理未捕获错误的新 API 可采用以下方式使用:

loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError); private function onUncaughtError(e:UncaughtErrorEvent):void { // Do something with your error. } 当您使用 Flex 时,您可以添加一个 UncaughtErrorEvent.UNCAUGHT_ERROR 监听器到 loaderInfo 对象,您一定要在 FlexEvent.APPLICATION_COMPLETE 事件触发之后才执行这个操作,否则您将遇到一个错误,即:Error #1009: Cannot access a property or method of a null object reference。

为了简化这个过程,并去掉所有这些最终会使主应用程序类变得凌乱的粘合代码和配置代码,我创建了一个 GlobalExceptionHandler 组件。这个实现与 APPLICATION_COMPLETE 事件并无直接关系;相反,它使用的是 [Mixin] 元数据标签。另外,您可以采取说明性方式来使用它;例如:

这个组件的代码和使用它的示例项目位于本文的示例文件 globalExceptionHandler.zip 中。

以下是 GlobalExceptionHandler 的代码:

package com.adobe.ac.logging { import flash.display.LoaderInfo; import flash.events.UncaughtErrorEvent; import mx.managers.ISystemManager; [Mixin] [DefaultProperty(\ public class GlobalExceptionHandler { private static var loaderInfo:LoaderInfo; [ArrayElementType(\onHandlerAction\ public var handlerActions:Array; public var preventDefault:Boolean; public static init(sm:ISystemManager):void { loaderInfo = sm.loaderInfo; } public function GlobalExceptionHandler() { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { for each (var action:GlobalExceptionHandlerAction in handlerActions) { action.handle(event.error); } if (preventDefault == true) { event.preventDefault(); } } function } } 以下是 LogHandlerAction 的代码:

package com.adobe.ac.logging { import mx.logging.ILogger; import mx.logging.Log; public class LogHandlerAction GlobalExceptionHandlerAction { private static const LOG:ILogger Log.getLogger(\ public function handle(error:Object):void { if (error is Error) { var errorObj:Error = error as Error; LOG.error(\ errorObj.errorID, errorObj.message, errorObj.getStackTrace()); } } } }

implements =

搜索更多关于: Flex全局异常和错误处理 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Flex全局异常和错误处理 从 Flash Player 10.1 和 Adobe AIR 2.0 开始,开发人员就能够全局地捕获未处理异常和错误。然而,注意在异常发生位置对异常进行处理是最好的方法。全局处理应该只用于您确实无法用其他方法控制的异步异常,或者未经本地捕获的诊断和日志异常。 在本文中,我将介绍如何使用 uncaughtError* 事件全局地捕获未处理异常或错误。我使用的技术是说明性的,且基于 MXML;它使用 Flex 特有的 [Mixin] 元数据标签。 要求 Flash Builder 4 ? 下载试用 ? Flash Player 10.1 示例文件 ? global-exception-handler.zip 预备知识 对 Flex、MXML 和事件处理器的了解将

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com