【发布时间】:2016-09-06 23:13:46
【问题描述】:
我正在寻找一种解决方案,我可以在其中捕获浏览器控制台中记录的所有错误(已处理/未处理)。
我知道window.onerror 和window.addeventlistener('error', function(){})。
上面的代码只捕获未处理的错误。我还需要捕获已处理的错误。
例如:
function foo() {
var x = null;
try {
x.a = "";
} catch (e) {
//Exception will be digested here.
}
var y = null
y.b = "";
}
window.onerror = function() {
//Write logic for the errors logged in console.
}
foo();
在上面的例子中try catch 在那里,所以我只会得到变量y 的错误,而不是x。
有什么方法可以监听/捕获catch 块?
谢谢
【问题讨论】:
-
您可以在使用调试器时做到这一点。但不是来自 JS 本身。为什么要这样做?
-
如果你真的想要,你可以在你的 catch 之后抛出一个自定义错误,该错误将传递给 window.onerror。示例:fiddle.jshell.net/L29jv5fv 你想做什么?
-
@AlbertoRivera 同意,这可以通过抛出错误来实现。但我有一个需要消化异常的场景。
-
@Ankur 直接在catch里面调用函数怎么样?
catch (e) {window.onerror('test',null,null,null,'custom');}但是,请重新考虑您的方法。这似乎是错误的。
标签: javascript html ecmascript-6