保持nodejs健状性,异步函数错误处理方法Domain与try.catch的区别

来源:互联网 发布:广东毕业生就业数据 编辑:程序博客网 时间:2024/06/05 18:19

保持nodejs健状性,异步函数错误处理方法Domain与try.catch的区别

首先看看try..catch处理错误方法

// 同步函数异常try {    errorObject()} catch(error) {    console.log(error)    console.log(1)}function errorObject() {    var i = wrong + true    console.log(1)}

这里写图片描述

虽然出现错误,但正常运行. 处理:输出了错误信息,并且输出1,


跟着尝试运行异步函数错误,看看try..catch的处理

// 异步函数异常try {    errorObject} catch(err) {    console.log(err)    console.log('ok')}function errorObject() {    setTimeout(() => {        var i = wrong + true        console.log(1)    }, 10)}

这里写图片描述

运行结果:不正常了,没有我们想得到的结果输出错误信息和ok

那遇到这种情况,我们应该怎么处理呢?那就要用到domain模块


Domain模块应用

//引入domain模块var domain = require('domain')//创建实例var d = domain.create()//监听error事件d.on('error', (err) => {    console.log(err)    console.log('ok')})//执行相应代码d.run(() => {    errorObject()})function errorObject() {    setTimeout(() => {        var i = wrong + true        console.log(1)    }, 10)}

这里写图片描述

可以看到,正常运行,并得到我们想要的结果

所以,在nodejs用Domain深层次处理异常,保持nodejs的健状性,不会因异常而退出进程.

阅读全文
0 0
原创粉丝点击