Express.js
关于未捕获异常的行为对我来说相当随机。有时,请求返回代码500
内部错误并继续运行,有时会崩溃[nodemon] app crashed - waiting for file changes before starting...
。后来什么时候发生?我可以通过返回代码为500
的所有错误请求来阻止它崩溃吗?
答案 0 :(得分:0)
这些错误属于两个不同的类别。
第一个错误500 internal error
属于操作错误类别。由于套接字挂起或请求超时等外部情况,会发生此类错误。应用程序抛出错误,但稍后在执行期间处理。服务器响应错误500状态代码而不是通常200.发送响应后,它继续工作。
第二个错误[nodemon] app crashed - waiting for file changes before starting...
属于程序员错误类别。当发生由程序员错误引起的未处理错误从而使其成为错误时,就会发生这种情况。这可能是因为javascript解析器无法解析您的代码,从而导致语法错误。在某些情况下,它也可能由于语义错误而发生,即。有关缺少模块或未定义变量的参考错误。
此类错误后,服务器停止工作,并在检测到代码更改时由nodemon启动。
这样的错误应该是未处理的,因为尝试处理它们可能会导致程序运行中出现不可预测的后果。
我向您推荐一篇关于node.js https://www.joyent.com/developers/node/design/errors
中的错误处理的精彩文章