发生错误时我应该使用 process.exit(1) 吗?
Should I used process.exit(1) when an error occurs?
我有一个简单的 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);
}
是的,可以用。
根据 Node.js 文档-
在大多数情况下,实际上没有必要显式调用 process.exit() 。如果事件循环中没有其他待处理的工作,Node.js 进程将自行退出。 process.exitCode属性可以设置为告诉进程在正常退出时使用哪个退出码。
调用 process.exit() 将强制进程尽快退出,即使仍有未完成的异步操作挂起,包括 process.stdout 和 [=25] 的 I/O 操作=].
To know more, you can read docs
我有一个简单的 Node.js 程序试图读取一个不存在的文件,因此会发生错误。我的问题是我应该在这种情况下使用 process.exit(1)
吗?当我注释掉 process.exit(1)
并回显 $?我得到的值为 0,这意味着该过程已成功执行。
'use strict';
const { readFileSync } = require('fs');
try {
const contents = readFileSync('noFile.txt');
console.log(contents);
} catch (err) {
console.error(err.message);
process.exit(1);
}
是的,可以用。
根据 Node.js 文档-
在大多数情况下,实际上没有必要显式调用 process.exit() 。如果事件循环中没有其他待处理的工作,Node.js 进程将自行退出。 process.exitCode属性可以设置为告诉进程在正常退出时使用哪个退出码。
调用 process.exit() 将强制进程尽快退出,即使仍有未完成的异步操作挂起,包括 process.stdout 和 [=25] 的 I/O 操作=].
To know more, you can read docs