Node.js. Попытка catch не работает в случае readline.question - PullRequest
0 голосов
/ 12 апреля 2020

Блок catch не обрабатывает "ERROR". Приложение завершается с ошибкой «Необработанная ошибка». Почему это происходит и как заставить это работать | справиться правильно?

 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 Я звоню. Я хочу прочитать данные, обработать их и предоставить некоторые результаты. Я хотел бы поймать ошибку, которая может появиться внутри кода и предотвратить сбой приложения. Я думал сделать это через глобальный tr-catch

...