我希望能够抛出一个错误以跟踪到跟踪输出窗口和我的 flashlog.txt 文件,但在错误后继续执行代码。这在 Actionscript 3 中可行吗?try catch 也不起作用,因为我需要使用它的调用堆栈记录错误。
问问题
710 次
2 回答
1
如果跟踪输出窗口是指在抛出错误时弹出的窗口(与 Flash IDE、Flash Builder 等中的跟踪窗口相反),则有一个有点骇人听闻的解决方法。基本上,您必须延迟调用,throw
以便它在自己的堆栈调用中运行。
这样的事情应该这样做:
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());
于 2011-04-19T01:59:55.090 回答
0
当然它可以在 try catch 中工作,只需将此代码放在 catch 块中
var e:Error = new Error(“Some error”);
trace(e.getStackTrace());
于 2011-04-19T01:19:57.983 回答