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

Всем привет. В сервисах там где может быть потенциальная ошибка бросаю

exception, вот мне это не нравится, сейчас думаю при таких случаях вернуть шаблонный ответ типа такого
return {
data: null,
message: 'User not found',
status: 400
}

потом его в интерсепторе ловить и отправить норм ошибку а не exception.

Так сделать вообще правильно? если нет то как без exception обработать потенциальную ошибку в сервисах?

12 ответов

16 просмотров

https://docs.nestjs.com/exception-filters#exception-filters-1

Muslim- Автор вопроса
Вертолёты Майя
https://docs.nestjs.com/exception-filters#exceptio...

Он есть уже у меня в системе. Вопрос был как вернуть нормальную ошибку из сервиса а не exception. А вот этот фильтр работает когда я верну exception

А в чём проблема, собственно? Вместо throw сделать return какой-нибудь функции-билдера ответа, в другом месте вызывать функцию-парсер этого ответа, который кинет throw. Но только вот вопрос - нужны ли такие извращения...

Muslim- Автор вопроса
Max Kiner
А в чём проблема, собственно? Вместо throw сделать...

В другом месте не кидать exception а вернуть респонс со статусом ошибки.

Muslim
В другом месте не кидать exception а вернуть респо...

Т.е. вне сервиса будет устанавливаться статус, и всё?

Muslim- Автор вопроса
Max Kiner
Т.е. вне сервиса будет устанавливаться статус, и в...

Это чтобы сервис не возвращал/не бросал никакой exception

Muslim- Автор вопроса
Max Kiner
Всё равно не вижу проблемы)

Ну короче я не хочу бросать ошибку когда ошибка явна, хочу просто всегда вернуть из сервиса ответ, а не бросать в нем exception

Muslim- Автор вопроса
Max Kiner
Так а в чём проблема то заключается?

Вот не могу найти слой где обработать ответ от сервиса (слой отличной от контроллера)(глобалный слой )

Muslim
Вот не могу найти слой где обработать ответ от сер...

Аа, понял теперь. Интерцептор на контроллере только, больше негде. Ну можно кастомный декоратор написать на метод, но опять же в контроллере

Muslim- Автор вопроса
Max Kiner
Аа, понял теперь. Интерцептор на контроллере тольк...

В сервисах возвращаю всегда return {data: shto_to, status: kakoy_to} Таким образом я всегда верну одинаковый ответ. И потом остается просто response.status(status).json(data)

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

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

Карта сайта