Node.js错误处理模式

异步语言中的错误处理,需要使用一些独特的,非常规的方式。 Node.js中有七种主要的错误处理模式。让我们简单地看一下。

错误返回值

最简单的模式,不能处理异步情况。如下:

抛出错误

这是一个常用的模式,函数执行时,如果出现错误情况,它会直接抛出一个错误。错误异常需要在catch中捕捉并处理。在try / catch中无法处理异步方法调用抛出的错误。要解决这个问题,我们需要使用domains。在node v0.8+版本的时候,发布了一个模块domain。这个模块做的就是try…catch所无法做到的:捕捉异步回调中出现的异常。

Domain示例:

其中 run() 相当于 try, on(‘error’) 相当于 catch

错误回调

通过回调返回错误是Node.js中最常见的错误处理模式。处理错误回调可能变得一团糟(回调地狱金字塔)。

订阅,监听错误

当发出错误时,错误被广播给所有相关的订阅者,按照订阅顺序,间隔执行。

Promise

Promise用于异步错误处理。如下:

Try…catch 和 async/await

ES7 Async / await能够让我们编写看起来是同步的,异步JS代码。

使用Await-to-js 第三方类库

不使用try-catch块的async / await。如下:

总结

以上几种方式,基本包含了从早期到现在的所有错误处理方案。Aysnc/await语法更加直观,简洁,以及编写同步代码的体验。不同环境下,使用最合适的方案,就是最好的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值