Throw ошибка только печатает первую линию

Когда я бросаю ошибку в node.js, я надеюсь, что ошибка появляется в консоли, и абзац также надеялся, что появляется число линии, где произошла вышеупомянутая ошибка, я схватил:

Ошибка:

{ [Error: Unauthorized]
  message: 'Unauthorized',
  httpStatusCode: 401,
  status: 'UNAUTHORIZED',
  cause:
   { statusCode: 401,
     error: 'Unauthorized',
     message: '401 Unauthorized, Invalid OAuth Token' } }

Код, который бросает ошибку:

throw err;

Ожидаемый результат:

Unhandled rejection Error: { [Error: Unauthorized]
      message: 'Unauthorized',
      httpStatusCode: 401,
      status: 'UNAUTHORIZED',
      cause:
       { statusCode: 401,
         error: 'Unauthorized',
         message: '401 Unauthorized, Invalid OAuth Token' } } at ClientError (/some/path/Documents/my/project/node_modules/some-module/path/somefile.js:12:24)

Однако, когда ошибка состоит из нескольких линий как тот, которого я показываю ранее, только, он показывает мне первую линию в консоли, я схватил:

Unhandled rejection Error: Unauthorized at ClientError (/some/path/Documents/my/project/node_modules/some-module/path/somefile.js:12:24)

Почему оно только является словом Unauthorized и не полное сообщение?

1
задан 08.03.2016, 01:18
2 ответа

То, что у тебя есть, так это объект Error со свойствами, дополнительными, возможно добавленные из-за модуля, который ты используешь. Node только печатает stack наметьте ошибки и Ваша первая линия - свойство message что является тем, что ты наблюдаешь.

Если ты хочешь детали объекта кроме stack, наметьте то, что ты можешь делать, он состоит в том, чтобы перегружать назначенное по умолчанию поведение, когда существует не проконтролированное исключение. Включать это на уровне приложения (не в модуле, а в корне):

process.on('uncaughtException', function (error) {
   console.log(error);
   console.log(error.stack);
   process.exit(1);
});

Будь осторожен с этой функцией, здесь не было бы должно быть больше ничего, что названные в console.log (если только ты не будешь знать, что ты делаешь), и всегда он был бы должен заканчиваться с process.exit так как приложение находится в не восстановимом состоянии. Документация события: uncaughtException.

2
ответ дан 24.11.2019, 14:45
  • 1
    Используй console.error вместо console.log, чтобы печатать ошибки. – Darkhogg 08.03.2016, 10:40

DespuГ©s" throw err", используй console.log(err), чтобы это печатать.

0
ответ дан 24.11.2019, 14:45
  • 1
    Спасибо @Elenasys, это не функционирует, потому что throw останавливает aplicaci и # 243; n, y помещать console.log раньше - то, что я стараюсь предотвращать. – Gepser 08.03.2016, 01:51

Теги

Похожие вопросы