atitit.js浏览器环境下的全局异常捕获
?
?
?
?
?
atitit.js瀏覽器環(huán)境下的全局異常捕獲
?
?
?window.onerror = function(errorMessage, scriptURI, lineNumber) {
?
var s=?JSON.stringify(arguments); alert(s);
?//alert(errorMessage
?//message: errorMessage,
?//script: scriptURI,
?//line: lineNumber
?
}
?
不同的瀏覽器對(duì)onerror的實(shí)現(xiàn)不同,手機(jī)和pc不同,參數(shù)定義都不同。參數(shù)數(shù)量。所以使用json比較好。。
window.onerror
對(duì)于 try-catch?覆蓋不到的地方,如果出現(xiàn)異常就只能通過 window.onerror?來捕獲了。
window.onerror =
?function(errorMessage, scriptURI, lineNumber) {
?reportError({
?message: errorMessage,
?script: scriptURI,
?line: lineNumber
?});
}
注意不要耍小聰明使用 window.addEventListener?或 window.attachEvent?的形式去監(jiān)聽 window.onerror。很多瀏覽器只實(shí)現(xiàn)了 window.onerror,或者是只有 window.onerror?的實(shí)現(xiàn)是標(biāo)準(zhǔn)的。考慮到標(biāo)準(zhǔn)草案定義的也是 window.onerror,我們使用 window.onerror?就好了。
屬性丟失?
假設(shè)我們有一個(gè) reportError?函數(shù)用來收集捕獲到的異常,然后批量發(fā)送到服務(wù)器端存儲(chǔ)以便查詢分析,那么我們會(huì)想要收集哪些信息呢?比較有用的信息包括:錯(cuò)誤類型(name)、錯(cuò)誤消息(message)、腳本文件地址(script)、行號(hào)(line)、列號(hào)(column)、堆棧跟蹤(stack)。如果一個(gè)異常是通過 try-catch?捕獲到的,這些信息都在 Error?對(duì)象上(主流瀏覽器都支持),所以 reportError?也能收集到這些信息。但如果是通過 window.onerror?捕獲到的,我們都知道這個(gè)事件函數(shù)只有 3 個(gè)參數(shù),所以這 3 個(gè)參數(shù)意外的信息就丟失了。
?
?
JS高級(jí)調(diào)試技巧:捕獲和分析 JavaScript Error詳解_javascript技巧_腳本之家.htm
JS高級(jí)調(diào)試技巧:捕獲和分析 JavaScript Error詳解_javascript技巧_腳本之家.htm
Json對(duì)象與Json字符串互轉(zhuǎn)(4種轉(zhuǎn)換方式)_json_腳本之家.htm
?
作者::?綽號(hào):老哇的爪子?(?全名::Attilax?Akbar?Al?Rapanui?阿提拉克斯?阿克巴?阿爾?拉帕努伊?)?
漢字名:艾提拉(艾龍),???EMAIL:1466519819@qq.com
轉(zhuǎn)載請(qǐng)注明來源:?http://www.cnblogs.com/attilax/
atiend
?
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的atitit.js浏览器环境下的全局异常捕获的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web前端开发必备:《Jquery实战》
- 下一篇: IFE-16 addEventHandl