我正在考慮處理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