| 序号 | 事件 & 描述 |
|---|---|
| 1 | exit 当进程准备退出时触发。 |
| 2 | beforeExit 当 node 清空事件循环,并且没有其他安排时触发这个事件。通常来说,当没有进程安排时 node 退出,但是 ‘beforeExit’ 的监听器可以异步调用,这样 node 就会继续执行。 |
| 3 | uncaughtException 当一个异常冒泡回到事件循环,触发这个事件。如果给异常添加了监视器,默认的操作(打印堆栈跟踪信息并退出)就不会发生。 |
| 4 | Signal 事件 当进程接收到信号时就触发。信号列表详见标准的 POSIX 信号名,如 SIGINT、SIGUSR1 等。 |
实例
创建文件 main.js ,代码如下所示:
process.on('exit', function(code) { // 以下代码永远不会执行
setTimeout(function() {
console.log("该代码不会执行");
}, 0);
console.log('退出码为:', code);
});
console.log("程序执行结束");
执行 main.js 文件,代码如下所示:
$ node main.js
程序执行结束
退出码为: 0退出状态码
| 状态码 | 名称 & 描述 |
|---|---|
| 1 | Uncaught Fatal Exception 有未捕获异常,并且没有被域或 uncaughtException 处理函数处理。 |
| 2 | Unused 保留 |
| 3 | Internal JavaScript Parse Error JavaScript的源码启动 Node 进程时引起解析错误。非常罕见,仅会在开发 Node 时才会有。 |
| 4 | Internal JavaScript Evaluation Failure JavaScript 的源码启动 Node 进程,评估时返回函数失败。非常罕见,仅会在开发 Node 时才会有。 |
| 5 | Fatal Error V8 里致命的不可恢复的错误。通常会打印到 stderr ,内容为: FATAL ERROR |
| 6 | Non-function Internal Exception Handler 未捕获异常,内部异常处理函数不知为何设置为on-function,并且不能被调用。 |
| 7 | Internal Exception Handler Run-Time Failure 未捕获的异常, 并且异常处理函数处理时自己抛出了异常。例如,如果 process.on(‘uncaughtException’) 或 domain.on(‘error’) 抛出了异常。 |
| 8 | Unused 保留 |
| 9 | Invalid Argument 可能是给了未知的参数,或者给的参数没有值。 |
| 10 | Internal JavaScript Run-Time Failure JavaScript的源码启动 Node 进程时抛出错误,非常罕见,仅会在开发 Node 时才会有。 |









