我正在考虑处理JavaScript运行时错误与window.onerror
与try{...} catch(e){...}
块。处理与window.onerror和try-catch块的错误之间的差异
https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onerror状态:
Note that some/many error events do not trigger window.onerror, you have to listen for them specifically.
似乎都window.onerror
和try{...} catch(e){...}
可以处理的ReferenceError:http://jsfiddle.net/7RARf/
而且,两者都不能处理的SyntaxError的:http://jsfiddle.net/UXVs2/
从处理明显区别除了错误使用window.onerror
并使用like处理它们try{...} catch(e){...}
,try-catch允许我们优雅地处理错误,重新抛出错误等等,而window.onerror函数不会,等等。在处理错误的两种方式之间还存在哪些其他差异?有没有可以用window.onerror
处理的错误,但是try{...} catch(e){...}
不能处理?反之亦然?
如果您尝试 - 你可能会期望发生错误 - window.onerror是有用的跟踪代码中的意外错误 - 例如。您可以将函数发送错误报告绑定到您的邮件 – Lapsio