209 похожих чатов

Здравствуйте, где нужно обрабатывать ошибку? На уровне сервиса или на уровне

контроллера?

13 ответов

26 просмотров

Можно на уровне фильтров

Я бы порекомендовал в контроллере делать обработку. Иначе придется на разные обработчики ошибок делать разные методы сервисов. Нам же такое не надо? Следовательно, в контроллере удобнее всего. Но напомню - зависит (от ситуации, разработчиков и прочего) 👀

Если ошибка, это всегда выброс исключения (даже если ошибка ожидаемая), то там, где удобно. А удобно, скорее всего в каком-нибудь фильтре. Всё равно же используешь выбросы как "control flow". А если ошибка, это не выброс исключения, а, например, возвращения объекта результата. То, естественно, ты будешь это обрабатывать там, где вызвал эту функцию

Apache- Автор вопроса
John Doe
Если ошибка, это всегда выброс исключения (даже ес...

Для простых круд сервисов вы где обрабатываете? Где просто нужно выкинуть нот фаунд

Из контроллера, чтобы из слой ниже как можно меньше знал о слое выше. А NotFountException это как раз знание о слое выше

John Doe
Из контроллера, чтобы из слой ниже как можно меньш...

Хотя в случае с нестом "знал о слое выше" это капля в море

Apache- Автор вопроса
John Doe
Хотя в случае с нестом "знал о слое выше" это капл...

Можно поподробнее) Какие подводные камни есть

Доступ к доке заблокировали? https://docs.nestjs.com/exception-filters

Алексей Шашенков
Доступ к доке заблокировали? https://docs.nestjs...

Вроде всё ок :D А может и вправду заблокирована у человека дока ? А? А? А?

в сервисе бизнес логика, там нельзя этого делать, если будет ошибка на уровне бд - возвращай исключение через фильтры в несте

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

Обсуждают сегодня

Карта сайта