用了 async/await 好像必须用 try … catch 做流程控制了?
UI 编程里try catch是很实用的,因为UI渲染是单线程的,要渲染多个模块时,假设没有try catch,如
renderModuleA() renderModuleB() renderModuleC()
如果各模块不管好自己的执行上下文,那么自己挂了也会误了别的模块。而很多时候容错处理是很繁冗的,而try catch就提供了一种比较粗放,成本也比较低的错误处理方式,如果觉得一段代码有各种edge case或者异常情况,就用try catch包起来,catch住错误写日志,调度UI现实等等,是程序健壮性非常重要的一环。
所以try catch不应该被看成一种不得不用的东西,而是很有用的东西。
node 终于可以 try/catch 了, 真好…
try-catch 好像性能是要差一点的,不宜到处都用。我倾向于最小化使用它。Async/await 背后是 promise。如果是自己写的,可以把 error 也 resolve,比如{ok: -1},这样在调用时就不需要 try-catch,而是判断 return 结果。如果是调用的,那该用就用。 自豪地采用 CNodeJS ionic
感谢回复,看来该用还是要用 @brickyang 有新思路也是好的!
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
UI 编程里try catch是很实用的,因为UI渲染是单线程的,要渲染多个模块时,假设没有try catch,如
renderModuleA() renderModuleB() renderModuleC()
如果各模块不管好自己的执行上下文,那么自己挂了也会误了别的模块。而很多时候容错处理是很繁冗的,而try catch就提供了一种比较粗放,成本也比较低的错误处理方式,如果觉得一段代码有各种edge case或者异常情况,就用try catch包起来,catch住错误写日志,调度UI现实等等,是程序健壮性非常重要的一环。
所以try catch不应该被看成一种不得不用的东西,而是很有用的东西。
node 终于可以 try/catch 了, 真好…
try-catch 好像性能是要差一点的,不宜到处都用。我倾向于最小化使用它。Async/await 背后是 promise。如果是自己写的,可以把 error 也 resolve,比如{ok: -1},这样在调用时就不需要 try-catch,而是判断 return 结果。如果是调用的,那该用就用。 自豪地采用 CNodeJS ionic
感谢回复,看来该用还是要用 @brickyang 有新思路也是好的!