【问题标题】:Should I used process.exit(1) when an error occurs?发生错误时我应该使用 process.exit(1) 吗?
【发布时间】:2020-12-17 13:43:37
【问题描述】:

我有一个简单的 Node.js 程序,它试图读取一个不存在的文件,因此会发生错误。我的问题是我是否应该在这种情况下使用process.exit(1)?当我注释掉 process.exit(1) 并回显 $?我得到的值为 0,表示进程执行成功。

index.js
'use strict';
const { readFileSync } = require('fs');
try {
    const contents = readFileSync('noFile.txt');
    console.log(contents);
} catch (err) {
    console.error(err.message);
    process.exit(1);
}

【问题讨论】:

    标签: javascript node.js process


    【解决方案1】:

    是的,您可以使用它。

    根据 Node.js 文档-
    在大多数情况下,实际上没有必要显式调用 process.exit()。如果事件循环中没有其他待处理的工作,Node.js 进程将自行退出。可以设置 process.exitCode 属性来告诉进程在进程正常退出时使用哪个退出代码。 调用 process.exit() 将强制进程尽快退出,即使仍有未完全完成的异步操作挂起,包括对 process.stdout 和 process.stderr 的 I/O 操作。

    To know more, you can read docs

    【讨论】:

    • 当错误发生时,挂起的异步操作是否会终止,是还是否?
    • 我想这就是我一直在寻找的 - 如果由于错误情况而需要终止 Node.js 进程,则抛出未捕获的错误并允许进程相应地终止比调用更安全进程。退出()。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2022-10-23
    • 2021-10-08
    • 2021-04-14
    • 2013-01-23
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    相关资源
    最近更新 更多