如何捕获Flex中的所有异常?

前端之家收集整理的这篇文章主要介绍了如何捕获Flex中的所有异常?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在调试闪存播放器中运行一个Flex应用程序,我得到一个异常弹出一旦意外发生的事情。然而,当客户使用应用程序时,他不使用调试闪存播放器。在这种情况下,他没有得到一个异常弹出,但他的UI不工作。

所以出于可支持性原因,我想捕获任何可能发生在Flex UI中的任何异常,并在Flex内部弹出窗口中显示错误消息。通过使用Java我只是将整个UI代码封装在一个try / catch块,但在Flex中的MXML应用我不知道,在哪里我可以执行这样一个一般的try / catch。

解决方法

有没有办法通知在Flex 3中的未捕获异常。Adobe知道这个问题,但我不知道他们是否计划创建一个解决方法

唯一的解决方案是将try / catch放在逻辑位置,并确保您正在侦听任何调度它们的错误(或Web服务的FAULT)事件。

编辑:此外,实际上不可能捕获从事件处理程序抛出的错误。我已经在Adobe Bug系统上记录了一个bug

更新2010-01-12:现在在Flash 10.1AIR 2.0(测试版)中支持全局错误处理,并且通过订阅LoaderInfo.uncaughtErrorEventsUNCAUGHT_ERROR事件实现以下代码取自code sample on 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
        }
    }
原文链接:https://www.f2er.com/flex/174548.html

猜你在找的Flex相关文章