エラーをスローしてトレース出力ウィンドウと 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
もちろん、このコードをcatchブロックに入れるだけで、try catchで機能します
var e:Error = new Error(“Some error”);
trace(e.getStackTrace());
于 2011-04-19T01:19:57.983 に答える