Наследование ошибок для не-http apis в nest.js - PullRequest
0 голосов
/ 04 ноября 2019

Согласно документации, почти всегда рекомендуется наследовать пользовательские ошибки от класса HttpException. С другой стороны, при работе с веб-сокетами рекомендуется бросать WsExceptions.

Каким образом пользовательские исключения, которые будут выбрасываться внутри служб, наследуются от встроенных классов исключений? Или они должны просто наследоваться от класса js Error?

Моя проблема здесь заключается в том, что мой бэкэнд имеет как контроллеры, шлюзы и преобразователи и, следовательно, поддерживает как Http, Websockets и Graphql. Я действительно хотел бы иметь возможность определять коды состояния http в моих пользовательских ошибках, на случай, если они будут выброшены при использовании http-api. Но та же ошибка (поскольку она генерируется в сервисе) может быть, вероятно, также возвращена в API Graphql или Websocket, все еще уместно наследовать от HttpException?

Кажется, что документы наиболее ориентированы на httpAPI, я хотел бы бросить исключения, которые передаются наилучшим образом во всех трех типах API. Что будет лучшей практикой здесь?

...