我有一个通用错误处理程序,它无法捕获所有错误,因为某些错误会作为字符串抛出。
例如
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 版本有时会抛出字符串错误并且无法捕获。
你说得对,就是这样。是的,这只是一个脚本错误。由于这个和其他原因,也许我们应该考虑支持 HTML DOM 对象的 JavaScript 库远非完美。
由于您没有解释给您开发中的问题带来的任何实际影响,我只能给您一个非常笼统的建议:不要仅仅依赖
window.onerror
,因为它只处理未捕获的异常,并且这个机制提供的异常信息不足。 也使用异常机制:try
-catch
-finally
。