Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash Actionscript 3出错后继续执行代码_Flash_Actionscript 3_Trace_Flashlog - Fatal编程技术网

Flash Actionscript 3出错后继续执行代码

Flash Actionscript 3出错后继续执行代码,flash,actionscript-3,trace,flashlog,Flash,Actionscript 3,Trace,Flashlog,我希望能够将要跟踪的错误抛出到跟踪输出窗口和flashlog.txt文件,但在错误发生后继续执行代码。这在ActionScript3中可能吗?try-catch也不起作用,因为我需要用它的调用堆栈记录错误。当然,它会在try-catch中起作用,只需将此代码放在catch块中即可 var e:Error = new Error(“Some error”); trace(e.getStackTrace()); 如果“跟踪输出窗口”指的是抛出错误时弹出的窗口(与Flash IDE、Flash Bu

我希望能够将要跟踪的错误抛出到跟踪输出窗口和flashlog.txt文件,但在错误发生后继续执行代码。这在ActionScript3中可能吗?try-catch也不起作用,因为我需要用它的调用堆栈记录错误。

当然,它会在try-catch中起作用,只需将此代码放在catch块中即可

var e:Error = new Error(“Some error”);
trace(e.getStackTrace());

如果“跟踪输出窗口”指的是抛出错误时弹出的窗口(与Flash IDE、Flash Builder等中的跟踪窗口相反),那么有一点黑客的解决方法。基本上,您必须延迟对
throw
的调用,以便它在自己的堆栈调用中运行

像这样的东西应该可以做到:

    public static function throwLater(error:Error):void 
    {
        setTimeout(function():void {
            throw error;
        },30);
    } 
当然,您必须将错误传递给这个函数,而不是直接抛出它

但是,如果您只是想从一个存在的错误中获取堆栈跟踪,请捕获它并获取堆栈跟踪,如图所示

另外,如果您只想在某个点上进行堆栈跟踪(但不想实际抛出错误),只需创建错误并调用
getStackTrace
,而不抛出错误。在这种情况下,你并不需要一个陷阱

        var error:Error = new Error();
        trace(e.getStackTrace());

请注意,如果您是以发布版本发布并使用发布播放器,那么这对您毫无帮助。e、 如果播放机不是调试播放机,则getStackTrace()始终返回null。
        var error:Error = new Error();
        trace(e.getStackTrace());