首页 > 开发 > NodeJS > 正文

nodejs Error 疑问?

2017-09-08 17:34:32  来源:网友分享

我们使用node app.js 启动服务。
当应用中出现错误的时候 我是这样处理的:

if(err) throw err;//看到好多node程序都是这样处理

或者自定义错误:new Error('error message')

当出现错误时,服务就会终止。
我的重新执行 node app.js

但是如果在生产环境中的话。程序肯定难免会出现错误(即会执行throw err)

总不可能自己重新发布吧!

这个问题该怎么处理。

解决方案

  1. 对于可能出问题的代码块多使用try{}catch(){}对异常进行主动的处理,别throw出去就不管了
  2. 开发和维护过程中应该坚持优化程序逻辑,减少error的出现,比如JSON.parse了一个空的字符串,产生了一个error,正确的做法是应该先对字符串进行基本的合法性判断
  3. 使用process.on('uncaughtException', function (err) {logger.error(err);});记录下你未在1中处理的error,尝试在2中的方法解决
  4. 对于依然无法捕获和处理的异常,建议结合node的domain模块来处理,推荐博文:Node.js 异步异常的处理与domain模块解析

对于保持node服务的稳定性,在保证代码本身的可靠性基础上,可以使用一些第三方的服务监控软件来实现自动化,比如:nodemon、forever、monit等等,有兴趣了解的话自行Google吧。