Actionscript 3中发生错误后继续执行代码

问题描述

我希望能够抛出一个要跟踪到跟踪输出窗口和我的flashlog.txt文件错误,但是在错误发生后继续执行代码。在ActionScript 3中有可能吗?尝试捕获将不起作用,因为我需要将错误记录在其调用堆栈中。

解决方法

如果通过跟踪输出窗口来表示抛出错误时弹出的窗口(与Flash IDE,Flash Builder等中的跟踪窗口相对),则存在一些变通方法。基本上,您必须将调用延迟到“ 0”,以便它在自己的堆栈调用中运行。 这样的事情应该做到:
    public static function throwLater(error:Error):void 
    {
        setTimeout(function():void {
            throw error;
        },30);
    } 
当然,您必须将错误传递给此函数,而不是直接抛出该错误。 但是,如果您只是想从存在的错误中获取堆栈跟踪,请捕获它并按照The_asMan所示获取堆栈跟踪。
        try {
            thisFunctionMightThrow()
        } catch (e:Error) {
            trace(e.getStackTrace();
        }
另外,如果只想在某个时刻进行堆栈跟踪(但又不想​​实际抛出错误),则只需创建错误并调用
getStackTrace
,而不抛出异常即可。在这种情况下,您实际上并不需要捕获。
        var error:Error = new Error();
        trace(e.getStackTrace());
,当然,只要将这段代码放在catch块中,它将在try catch中起作用
var e:Error = new Error(“Some error”);
trace(e.getStackTrace());

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...