」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何檢索自訂 JavaScript 異常的堆疊追蹤?

如何檢索自訂 JavaScript 異常的堆疊追蹤?

發佈於2024-11-14
瀏覽:658

How to Retrieve Stack Traces for Custom JavaScript Exceptions?

取得自訂異常的JavaScript 堆疊追蹤

在執行JavaScript 程式碼時,異常可以為您的腳本遇到的問題提供有價值的見解。然而,獲取自己拋出的異常的堆疊追蹤是一個挑戰。本文解決了這個問題,並提供了專門針對您自己的異常獲取堆疊追蹤的解決方案。

最初,只能取得內建 JavaScript 異常的堆疊追蹤。然而,現代瀏覽器的進步引入了新技術來解決此限制。

現代瀏覽器的Console.trace()

在最近的瀏覽器中,console.trace( )方法可用。透過呼叫它,您可以獲得包含 console.trace() 呼叫位置的堆疊追蹤。

console.trace();

Error Stack Property對於所有瀏覽器

評論者在原始問題上分享的一個改進的解決方案涉及利用錯誤的堆疊屬性物件。

function stackTrace() {
    var err = new Error();
    return err.stack;
}

此方法提供了類似於console.trace() 產生的輸出的詳細堆疊追蹤:

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

自訂堆疊追蹤函數

在不支援這些方法的舊版瀏覽器中,可以使用更複雜的函數來獲取自訂堆疊追蹤:

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);
}
版本聲明 本文轉載於:1729175239如有侵犯,請聯繫[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3