スローされた例外のストレースの取得
JavaScript では例外を発生させることができますが、カスタム例外のスタック トレースを取得するのは困難な場合があります。 。この記事では、ユーザー定義の例外に特化したスタック トレースを取得するさまざまな方法について説明します。
Error オブジェクトの stack プロパティは、簡単な解決策を提供します。新しい Error オブジェクトを作成し、その stack プロパティにアクセスすると、トレースをキャプチャできます。
function stackTrace() {
var err = new Error();
return err.stack;
}
このアプローチでは、
DBX.Utils.stackTrace@http://localhost:49573/assets/js/scripts.js:44 DBX.Console.Debug@http://localhost:49573/assets/js/scripts.js:9 .success@http://localhost:49573/:462 x.Callbacks/c@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4 x.Callbacks/p.fireWith@http://localhost:49573/assets/js/jquery-1.10.2.min.js:4 k@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6 .send/r@http://localhost:49573/assets/js/jquery-1.10.2.min.js:6
この形式は、呼び出し関数、URL、および連続した呼び出し関数を提供します。
最新のブラウザの場合は、より簡単な方法を使用できます:
console.trace(); // (MDN Reference)
この関数はスタック トレースをキャプチャし、コンソールに表示します。
元のスレッドで代替オプションが提案されました:
function stacktrace() {
function st2(f) {
return !f ? [] :
st2(f.caller).concat([f.toString().split('(')[0].substring(9) '(' f.arguments.join(',') ')']);
}
return st2(arguments.callee.caller);
}
この関数は呼び出しスタックを再帰的に走査し、スタック トレース文字列を構築します。
これらのメソッドを実装することにより、開発者はカスタム JavaScript 例外のスタック トレースを効果的に取得でき、より堅牢なエラー処理とデバッグが可能になります。 .
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3