乐趣区

关于javascript:关于异常捕获trycatch

之前看见一个表情包
“代码报错怎么了,try…catch… 盖住不就好了,能运行就行了”
“later…”
“ 公司开张了(吃泡面中 …)”

其实 try…catch… 并不是万能的,这里开始梳理下吧。如有误,请斧正。

try…catch… 无奈捕捉 promise 和 setTimeout 等异步的函数
但通过 await 去包装一层,能够捕捉 promise 回调函数外部的报错
但 await 去包装 setTimeout 却不行
为何呢?前面再缓缓去梳理为何,先搞清如何能捕捉。
感觉仿佛是 try…catch… 能捕捉“同步函数”(await 包装一层后也算同步了)

如果 promise 外没有包装 await 关键字,如何捕捉异样呢?
unhandledrejection
大略去看了下,这个异样捕捉集体感觉不生很好用,感兴趣能够自行查阅材料

setTimeout 在里面包装一层 await 仍然无奈捕捉,那怎么捕捉他呢?
window.onerror 事件

window.onerror = function(e) {console.log('e---', e)
}
// 它更多参数的语法更偏向前端异样监控的我的项目

不论是 unhandledrejection 或 window.onerror,看搜寻进去的后果,在前端异样监控网站里比拟多,比方自研一款前端异样监控上报到服务器。

参考文章:
try…catch 应用场景

退出移动版