共计 587 个字符,预计需要花费 2 分钟才能阅读完成。
之前看见一个表情包
“代码报错怎么了,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 应用场景
正文完
发表至: javascript
2021-04-27