Node JS 在一系列函数调用后没有终止
Node JS not terminating after a chain of function calls
我的代码结构是这样的:
A();
function A() {
try {
// something that can generate an error
console.log('\nIn A()');
B();
} catch (e) {
console.log(e);
}
}
function B() {
try {
console.log('\nIn B()');
C()
} catch (e) {
console.log(e);
}
}
function C() {
try {
console.log('\nIn C()');
} catch (e) {
console.log(e)
}
}
我观察到的是,如果生成异常,它会进入 catch 块,打印 console.log。但不会终止代码。我读到 catch 不会终止,但由于控制权没有转移到其他地方,为什么进程会挂起?我还尝试制作一个记录错误并从 catch 块调用的函数。它进入函数并再次挂起。
我不熟悉 Node JS 中的错误处理。任何帮助,将不胜感激。
您提供的代码 运行 没有错误。
A();
function A() {
try {
// something that can generate an error
console.log('\nIn A()');
B();
} catch (e) {
console.log(e);
}
}
function B() {
try {
console.log('\nIn B()');
C()
} catch (e) {
console.log(e);
}
}
function C() {
try {
console.log('\nIn C()');
} catch (e) {
console.log(e)
}
}
与级联函数调用无关。这是因为用于从命令行获取用户输入的读取流未关闭。如果流保持打开状态或任何异步调用尚未完成,节点不会终止。
我的代码结构是这样的:
A();
function A() {
try {
// something that can generate an error
console.log('\nIn A()');
B();
} catch (e) {
console.log(e);
}
}
function B() {
try {
console.log('\nIn B()');
C()
} catch (e) {
console.log(e);
}
}
function C() {
try {
console.log('\nIn C()');
} catch (e) {
console.log(e)
}
}
我观察到的是,如果生成异常,它会进入 catch 块,打印 console.log。但不会终止代码。我读到 catch 不会终止,但由于控制权没有转移到其他地方,为什么进程会挂起?我还尝试制作一个记录错误并从 catch 块调用的函数。它进入函数并再次挂起。
我不熟悉 Node JS 中的错误处理。任何帮助,将不胜感激。
您提供的代码 运行 没有错误。
A();
function A() {
try {
// something that can generate an error
console.log('\nIn A()');
B();
} catch (e) {
console.log(e);
}
}
function B() {
try {
console.log('\nIn B()');
C()
} catch (e) {
console.log(e);
}
}
function C() {
try {
console.log('\nIn C()');
} catch (e) {
console.log(e)
}
}
与级联函数调用无关。这是因为用于从命令行获取用户输入的读取流未关闭。如果流保持打开状态或任何异步调用尚未完成,节点不会终止。