общий бросок, дающий ожидаемый объект, который будет брошен - PullRequest
0 голосов
/ 31 октября 2018

Ниже кода выброса, приводящего к ошибке lint Ожидается, что объект будет брошен no-throw-literal

throw { code : 403, message : myMessage };

если я попытаюсь выдать новую ошибку , я не получаю eslint, но он дает [Object Object] в ответе.

throw new Error({ code : 403, message : myMessage });

Может кто-нибудь сказать мне, как исправить Ожидается ли выброс объекта * Ошибка 1012 *? без удаления конфигурации / правил eslint

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Другой простой обходной путь - ошибка хранения переменной и броска.

let errorMessage =  { code : 403, message : myMessage };
throw errorMessage;
0 голосов
/ 31 октября 2018
 throw Object.assign(
   new Error(myMessage),
   { code: 402 }
);

Выдает обычную ошибку и расширяет ее настраиваемыми полями.


Для этого вы также можете написать повторно используемый класс ошибок:

  class CodeError extends Error {
   constructor(message, code) {
    super(message);
    this.code = code;
   }
 }

 throw new CodeError(myMessage, 404);

Таким образом, вы можете легко распознать ошибки при отлове:

  } catch(error) {
    if(error instanceof CodeError) {
      console.log(error.code);
    } else {
      //...
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...