ActionScript 3.0 UncaughtErrorEvent无法正常工作

时间:2011-04-12 23:00:16

标签: flex actionscript-3 exception

我真的不了解UncaughtErrorEvent并且无法让它适用于我的Air 2.6应用程序。如果我使用调试器逐步执行代码,我会得到非常奇怪的结果。

这是代码:

 public class Main extends Sprite{
      public function Main(){
           loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);          
                     // ...
           }
           ...
      private function onUncaughtError(e:UncaughtErrorEvent):void
      {
           var error:Error = e.error;
           Logger.log("Uncaught Error - Type: " + e.type + " - Message: " + error.message, "session");
      }
 }

我在第var error:Error = e.error;行设置断点并启动应用程序 在某一点上,发生异常并且调试器在特定行上正确中断。

现在是奇怪的部分。

当我点击“跳过(F6)”时,我希望应用程序跳转到下一行“Logger.log(...” - 但相反,控制台将显示抛出的异常

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.

然后应用程序重新运行。 “Logger.log(...”行永远不会执行 这怎么可能呢?如何调试器在var error:Error = e.error中断,但下一行没有执行?

感谢您的澄清

1 个答案:

答案 0 :(得分:2)

AS3 reference读取

  

当内容在调试器中运行时   运行时的版本,例如   调试版的Flash Player或   AIR Debug Launcher(ADL),一个   当一个未出现的错误对话框出现   未发生的错误发生了。对于那些   运行时版本,错误对话框   即使是听众也会出现   注册了uncaughtError   事件。阻止对话框   出现在那种情况下,打电话给   UncaughtErrorEvent对象   preventDefault()方法。