前端错误的分类
1、即时运行错误(代码错误)。2、资源加载错误
错误捕获方式
即时运行错误的捕获方式
1 | 1、try ... catch |
资源加载错误捕获方式
上面的window.onerror只能捕获即时运行错误,无法捕获资源加载错误。原理是:资源加载错误,并不会向上冒泡,object.onerror捕获后就会终止(不会冒泡给window),所以window.onerror并不能捕获资源加载错误。
1 | 方式1:object.onerror。img标签、script标签等节点都可以添加onerror事件,用来捕获资源加载的错误。 |
错误上报的两种方式
1、采用Ajax通信的方式上报(此方式虽然可以上报错误,但是我们并不采用这种方式)。
2、利用Image对象上报(推荐。网站的监控体系都是采用的这种方式)
利用Image对象上报
1 | (new Image()).src = 'http://smyhvae.com/myPath?badjs=msg'; // myPath表示上报的路径(我要上报到哪里去)。后面的内容是自己加的参数。 |