前端错误处理(转)
前端异常处理:
错误类型:
1.运行时错误 window.onerror
2.资源加载错误. window.addeventlistner(‘error’) element.onerror
3.异步请求异常 封装XMLHtpprequest的send方法
4.promise异常 window.addEventListener(‘unhandledrejection’,function(event){})
对于跨域脚本,语法错误的细节不会报告,代之以 “Script error”
为了获取跨域脚本的错误信息,需要 1. 在script标签上加crossorigin属性 2.服务端响应头设置access-control-allow-origin:*
=====================================================================
对应解决方法
1.当JavaScript运行时错误(包括语法错误)发生时,window会触发一个ErrorEvent接口的事件,并执行window.onerror()
2.
(1) 当一项资源(如<img>或<script>)加载失败,加载资源的元素会触发一个Event接口的error事件,并执行该元素上的onerror()处理函数。
element.onerror = function(event) { ..
(2)资源加载失败,不会冒泡,但是会被addEventListener捕获,所以我们可以指定在加载失败事件的捕获阶段捕获该错误
window.addEventListener("error", function(e) {
3. 封装XMLHttpRequest 覆写请求接口对象
var xmlhttp = window.XMLHttpRequest;
var _oldSend = xmlhttp.prototype.send;
xmlhttp.prototype.send = function () {
if (this['addEventListener']) {
this['addEventListener']('error', _handleEvent);
4. 最新的规范中定义了 unhandledrejection事件用于全局捕获promise对象没有rejection处理器时异常情况。
window.addEventListener("unhandledrejection", function (event) {