Yab*_*aba 43 apache-flex error-handling exception
当我在调试Flash播放器中运行Flex应用程序时,只要发生意外情况,我就会弹出异常.但是,当客户使用该应用程序时,他不使用调试Flash播放器.在这种情况下,他没有弹出异常,但他的UI不起作用.
因此,出于可支持性原因,我想捕获Flex UI中任何可能发生的异常,并在Flex内部弹出窗口中显示错误消息.通过使用Java,我只是将整个UI代码封装在try/catch块中,但是在Flex中使用MXML应用程序我不知道,我可以在哪里执行这样的通用try/catch.
Ric*_*lay 51
无法通知Flex 3中未捕获的异常.Adobe已了解此问题,但我不知道他们是否计划创建变通方法.
目前唯一的解决方案是将try/catch放在逻辑位置,并确保您正在侦听任何调度它们的ERROR(或FAULT for webservices)事件.
编辑:此外,实际上不可能捕获从事件处理程序抛出的错误.我在Adobe Bug系统上记录了一个错误.
更新2010-01-12:Flash 10.1和AIR 2.0现在支持全局错误处理(均处于测试阶段),并通过订阅LoaderInfo.uncaughtErrorEvents的UNCAUGHT_ERROR事件来实现.以下代码取自livedocs上的代码示例:
public class UncaughtErrorEventExample extends Sprite
{
public function UncaughtErrorEventExample()
{
loaderInfo.uncaughtErrorEvents.addEventListener(
UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler);
}
private function uncaughtErrorHandler(event:UncaughtErrorEvent):void
{
if (event.error is Error)
{
var error:Error = event.error as Error;
// do something with the error
}
else if (event.error is ErrorEvent)
{
var errorEvent:ErrorEvent = event.error as ErrorEvent;
// do something with the error
}
else
{
// a non-Error, non-ErrorEvent type was thrown and uncaught
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31070 次 |
| 最近记录: |