0

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来做到这一点

4

0 回答 0