手动捕获
try { // 执行目标代码 } catch (err) { // 控制台打印报错信息 console.log(err); } finally { // 无论是否报错都会执行的代码 }
自动捕获
window.onerror = function (message, source, lineno, colno, error) { // 解析报错信息 };
可全局监听所有JS的报错
- message:错误消息(字符串)
- source:引发错误的脚本的URL(字符串)
- lineno:发生的行的列号(数值)
- colno:发生错误的行的列号(数值)
- error:错误对象(对象)
缺点:
- 对跨域的 js ,如 CDN 的,不会有详细的报错信息
- 对于压缩的 js ,需要配合 sourceMap 反查到未压缩代码的行、列