发送响应后,节点js未捕获异常

时间:2014-06-23 14:47:21

标签: node.js asynchronous express exception-handling restify

我有一个restify服务器,它从客户端获取带有一些参数的请求来运行一个很长的过程。

因此,在初始化一些属性和一些检查之后,服务将json返回给客户端(并开始处理 asynchronusly )。然后客户端可以通过套接字上的日志文件监控进程。

问题是 之前的任何异常

res.send(jsonObject)

可以被

抓住
process.on('uncaughtException'...

但 发送回复后 的任何异常都无法抓住!!!

无论以这种方式处理异常都不是最好的方法,并且在套接字上拖尾不是那么好

我希望能够捕获在向客户端发送响应后可能发生的后续异常!!

1 个答案:

答案 0 :(得分:0)

也许您应该查看关于异常处理的this帖子。当错误冒泡到uncaughtException时,它会将进程置于未知状态。如果您想要隔离这些异常,请考虑使用domains安全地包装您的逻辑。

  

每个NodeJs文档:“请注意,uncaughtException是非常的   异常处理的粗略机制,可以删除   将来

     

不要使用它,而是使用域名。如果您使用它,请重新启动   每次未处理的异常后应用程序!

     

不要将它用作相同的On Error Resume Next的node.js。一个   未处理的异常意味着您的应用程序 - 并通过扩展node.js   本身 - 处于未定义状态。盲目恢复意味着什么   可能会发生。

     

在升级时考虑恢复拔电源线   你的系统。十分之九没有任何事情发生 - 但是第十次   时间,你的系统破灭了。

     

你被警告了。“