错误分类
- 及时运行错误:代码错误
- 资源加载错误
错误的捕获方式
- 运行时错误的捕获
1、try..catch
try{
可能会发生错误的代码
}catch(e){}
2、window.onerror
/**
* @param {String} errorMessage 错误信息
* @param {String} scriptURI 出错的文件
* @param {Long} lineNumber 出错代码的行号
* @param {Long} columnNumber 出错代码的列号
* @param {Object} errorObj 错误的详细信息,Anything
*/
window.onerror = function(errorMessage, scriptURI, lineNumber,columnNumber,errorObj) {
// TODO
}
- 资源加载时错误捕获
1、Object.onerror
<img src="image.gif" onerror="myFunction()">
2、performance.getEntries()
返回一个已加载的资源数组,获取节点中的所有img标签,减去已加载的剩下的是未加载的
3、Error事件捕获(捕获阶段)
window.addEventListener('error', function (e) {
console.log('捕获', e);
}, true);
- 跨域的js捕获错误
1在script标签增加corssorigin属性
2配置一下服务器,设置静态资源Javascript的Response为Access-Control-Allow-Origin
错误上报
1、ajax通信上报
2、利用Image对象上报
(new Image()) = 'http://baidu.com/tesjk?r=tksjk';//上报的路径