【发布时间】:2013-10-02 15:49:49
【问题描述】:
我正在考虑使用 window.onerror 与 try{...} catch(e){...} 块处理 JavaScript 运行时错误。
https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.onerror 状态:
请注意,一些/许多错误事件不会触发window.onerror,您必须专门监听它们。
看来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){...} 处理的错误?反之亦然?
【问题讨论】:
标签: javascript