window.onerror
2024年02月27日
一、认识
window.onerror
事件在冒泡阶段执行, 用于全局捕获错误
二、语法
window.onerror = function (message, source, lineno, colno, error) {
console.log("message: ", message);
console.log("source: ", source);
console.log("lineno: ", lineno);
console.log("colno: ", colno);
console.log("error: ", error);
return true;
};
-
message
:错误信息(字符串)。可用于HTMLonerror
=""处理程序中的event
。 -
source
:发生错误的脚本URL
(字符串) -
lineno
:发生错误的行号(数字) -
colno
:发生错误的列号(数字) -
error
:**Error
**对象
三、特点
3.1 可以捕获异步错误
3.2 不可以捕获静态资源加载错误
原因是资源类型错误没有冒泡,只能在捕获阶段捕获,而 window.onerror
是通过在冒泡阶段捕获错误,对静态资源加载类型异常无效,所以只能借助 window.addEventListener('error', callback, true)
的方式捕获。
3.3 事件监听器,只可以绑定一个,后一个会覆盖前一个
四、操作
4.1 阻止默认事件
没有返回值或者返回值为false
的时候,异常信息会通过 console.error
的方式在控制台打印。无论返回 true
或 false
或不返回,当有报错时都会阻止执行默认事件处理函数,即无法继续该报错代码的下一行逻辑。
因此, window.onerror
函数体可以通过返回return true
不让异常信息输出到控制台。