使用 window.onerror 来捕获抛出字符串而不是错误对象

问题描述 投票:0回答:1

我有一个通用错误处理程序,它无法捕获所有错误,因为某些错误会作为字符串抛出。

例如

window.onerror = new function(msg, url, line, col, error){
    console.log(msg);
    //console.log(arguments);
};

现在如果我抛出这个异常:

throw new Error("Catch this")

错误处理程序将记录“Catch this”;

问题是如果异常以这种方式抛出:

throw "Catch this";

这将记录“脚本错误”。

我记录了参数以查找抛出的原始错误文本,但在任何地方都找不到它。有没有办法用window.onerror捕获消息?

我使用的 JQuery UI 版本有时会抛出字符串错误并且无法捕获。

javascript exception error-handling
1个回答
0
投票

你说得对,就是这样。是的,这只是一个脚本错误。由于这个和其他原因,也许我们应该考虑支持 HTML DOM 对象的 JavaScript 库远非完美。

由于您没有解释给您开发中的问题带来的任何实际影响,我只能给您一个非常笼统的建议:不要仅仅依赖

window.onerror
,因为它只处理未捕获的异常,并且这个机制提供的异常信息不足。 也使用异常机制:
try
-
catch
-
finally

© www.soinside.com 2019 - 2024. All rights reserved.