获取一系列抛出的异常
虽然 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