阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js process 正确地使用 uncaughtException

      Node.js process 正确地使用 uncaughtException

      需要注意,如果打算使用 ‘uncaughtException’ 事件作为异常处理的最后补救机制,这是非常粗糙的设计方式。 此事件不应该当作 On Error Resume Next(出了错误就恢复让它继续)的等价机制。 未处理异常本身就意味着应用已经处于了未定义的状态。如果基于这种状态,尝试恢复应用正常进行,可能会造成未知或不可预测的问题。

      此事件的监听器回调函数中抛出的异常,不会被捕获。为了避免出现无限循环的情况,进程会以非零的状态码结束,并打印堆栈信息。

      如果在出现未捕获异常时,尝试去恢复应用,可能出现的结果与电脑升级时拔掉电源线出现的结果类似 – 10次中有9次不会出现问题,但是第10次可能系统会出现错误。

      正确使用 ‘uncaughtException’ 事件的方式,是用它在进程结束前执行一些已分配资源(比如文件描述符,句柄等等)的同步清理操作。 触发 ‘uncaughtException’ 事件后,用它来尝试恢复应用正常运行的操作是不安全的。

      想让一个已经崩溃的应用正常运行,更可靠的方式应该是启动另外一个进程来监测/探测应用是否出错, 无论 uncaughtException 事件是否被触发,如果监测到应用出错,则恢复或重启应用。


      更多内容请参考:Node.js process 进程,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录