獲取一系列拋出的異常
雖然 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