catch 块不处理“错误”。该应用程序因“未处理的错误”异常而失败。为什么会发生以及如何使其发挥作用| 正确处理?
function write() {
try {
rl.question('> ', (line: string) => {
throw "ERROR"
// caller(line)
});
} catch (e) {
console.log('local level')
console.log(`Error -> ${e}`);
}
}
try {
write();
} catch (e) {
console.log('global level')
}
谢谢你的帮助。亲切的问候。
PS更新
我的代码是一个同步的函数链。基本上它看起来像:
function validateArg(arg) { if (!arg) throw "Missed arg" }
function caller(arg) {
validateArg(arg) // it should throw an error if no arg
...do some with arg
}
在readline里面我叫它。我想读取数据,处理它并提供一些结果。我想捕捉可能来自代码内部的错误并防止应用程序失败。我想通过 global tr-catch来做到这一点