nodejs 使用process统一处理异常

nodejs的process是一个全局对象,可以通过process控制程序的健壮性。

process.on('exit',function(code){
    // TODO 这里可以主动释放其他资源 如zookeeper连接等
    if (code === 1000) {
        console.error('process:uncaughtException');
    }else if (code === 1001) {
        console.error('process:SIGINT');
    } else if (code === 1002) {
        console.error('process:SIGTERM');
    } else {
        console.error('process:unknown');
    }
});
process.on('uncaughtException',function(e){
    console.log(e);
    // 异常可以选择不退出
    process.exit(1000);
});
process.on('SIGINT',function () {
    process.exit(1001);
});

process.on('SIGTERM',function () {
    process.exit(1002);
});
  • 1 process.exit(code): 退出程序 可以传递code值。
  • 2 process.on('exit',Function(code)):监听当前程序的退出事件, 可以进行重复监听。
  • 3 process.on('uncaughtException',Function(e)): 监听当前程序的未捕获的所有异常事件,可以进行重复监听。
  • 4 process.on('SIGINT',Function()): 监听信号量为SIGINT(所有平台执行ctrl+c时发出的信号量),可以进行重复监听。
  • 5 process.on('SIGTERM',Function()): 监听信号量为SIGTERM(除window之外的平台的kill信号),可以进行重复监听。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 11,513评论 0 6
  • Node.js 全局对象 JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它...
    FTOLsXD阅读 3,051评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,523评论 19 139
  • 机会仅仅只有一瞬,鳄鱼在那龙还难受得左右甩着自己的头颅的时刻,迅速翻出通讯面板,一键拨号,直达司马。 而当幸运会过...
    Mod模君阅读 1,228评论 0 0
  • 昨晚约了早上9:30的瑜伽课,早早起身,吃吃喝喝后,看看书,消化消化等待出发。 9点左右一阵风起,正觉得舒适,没想...
    镜观奇辩阅读 3,607评论 7 2