javascript 程序错误的捕获

1. 捕获非期约异常

比如你使用一个没有定义的变量, 肯定会报错 is not defined, 这个时候错误监听就生效了
在函数里面返回一个ture,浏览器就不会继续提示错误了, 代码里面没有使用 catch

event 内部参数信息:
message:错误信息(字符串)。可用于HTML οnerrοr=""处理程序中的event。
source:发生错误的脚本URL(字符串)
lineno:发生错误的行号(数字)
colno:发生错误的列号(数字)
error:Error对象(对象)

window.removeEventListener('error', event => {
        console.warn(event)
        event.preventDefault()
      })

2. 捕获期约异常(Promise)

如果期约被拒绝有没有 .catch() 函数处理它, 可以通过定义 unhandledrejection, 不过如果使用 vue 框架, 记得在适合的时候 removeEventListenerevent.preventDefault() 是用来让浏览器不会继续提示错误的

  window.addEventListener('unhandledrejection', function (event) {
        console.warn(`UNHANDLED PROMISE REJECTION: ${event.reason}`)
        event.preventDefault()
      })

如果两个错误 (promise, no promise) 发生的位置特别近, 会出现漏掉错误的问题

3. 待完善, 还有vue 错误捕获等等…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值