js中Async/Await 怎么做错误处理更好?
发布于 7 年前 作者 liaoyinglong 6812 次浏览 来自 问答

js中Async/Await 怎么做错误处理更好?

最近也在使用async/await,也是发现try catch会写的比较多,但是又苦于无法寻得更好的解决方法,网上了搜索了下也没找到相关的资料,

思考一下,真的是 “每次都要写一堆的try catch” 吗?还是只需要在需要处理异常的时候 try catch? 经验不足实在是想不明白这个话的意思,有大神写过相关文章能分享一下吗?

9 回复

try/catch blocks with async/await

I wouldn’t worry about things like that in Node. If things like that get used a lot then it will get optimized eventually by the V8 or SpiderMonkey or Chakra teams and everyone will follow - it’s not like it’s not optimized as a principle, it’s just not a problem.

另外附上在Stack Overflow上面的一人回答,感觉也不无道理。 但是现在v8优化了try/catch了吗?

数据库的事务理解吗?把错误处理当成事务来看待,一批操作只要有一个失败,那整个任务都是失败的,所以这一批操作就可以放到一个try中。 在你认为需要try的地方使用try就可以了,想那么多干嘛,如果有人说“建议不要用try”,那不只是个建议嘛,该用还得用!存在即合理,既然语法上支持程序上需要,那为什么不用

非预期在最外层 try/catch 然后打日志就好了,如果是预期的错误,那处理异常就是使用 try/catch 就好了,不需要每次调用都 try/catch

@zengming00 大概懂了一点,谢谢!

@popomore 大概懂了那么一点,等经验充足了再来分享,谢谢!

为什么不是在最外层捕获呢?

预期的错误还好,非预期的只能catch了吧

如果楼主不喜欢写try catch,就基于es7-decorator做AOP替代try catch

@yujintang 最外层? 会失去上下文的。

回到顶部