之前看见一个表情包
“代码报错怎么了,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 应用场景