前端:异常捕获

发布于 2024-05-30  1545 次阅读


同步异常:

  • try/catch: 任务流方式
  • window.onerror:全局对象监听错误回调方式

window.onerror可以捕获同步异常和定时器异步异常,不能捕获promise异步异常。另外在vue项目中,如果同步异常出现在vue组件中,window.onerror是捕获不到的,不过在vue组件中的定时器异步异常还是可以通过window.onerror捕获到

  • element.onerror:部分元素错误回调方式

在部分元素例如 img、script等标签加载失败的时候会触发该元素对象的error事件,设置该元素 element.onerror的监听程序可以捕获到这类异常,注意:这种异常不会冒泡到全局,所以window.onerror是监听不到的。

  • Vue.config.errorHandler:vue全局组件异常

由于vue中同步异常被内部的errorHandler捕获了,所以我们的window.onerror捕获不到,所以我们要想捕获vue组件中出现的同步异常,得从errorHandler中来捕获

  • errorCaptured:vue组件异常生命周期钩子函数

异步异常:

  • window.onerror:全局对象监听
  • Promise.catch:promise对象自带异常处理
  • window.onunhandledrejection:全局对象监听未处理的promise异常

欢迎欢迎~热烈欢迎~