С фига ли эксепшины не могут быть бастью БЛ???? Вот есть

сторонний сервис, для примера, который может принимать данные от нашего сервиса, но, по своей внутрненней логике, может для ПОЛНОСТЬЮ корректного запроса отдать в ответ 400 ошибку,
И это тоже часть бизнес логики, что он, этот сторонний сервис, может вернуть 400
И что теперь, без try catch как быть в таком случае?

3 ответов

6 просмотров

Не выбрасывать исключение?)

внутри бизнес логики можно ловить их

у тебя есть перед бизнесом как минимум один слой. например, DTO. на ней должно быть максимум валидаторов. всякие там @Uuid, @GreateThan и тд. Если DTO не прошла валидацию, то 400. А вот если прошла, но уже в агрегате Assert::uuid() сказал, что это не uuid, то это значит, что ты недописал валидатор. И это уже 500 critical. И тогда ты идешь в проект и добавляешь валидатор. В более сложном случае, когда сам бизнес-кейс не смог завершиться, то значит юзер смог как-то отправить неверный запрос, нажав на ошибочно активную кнопку. Значит, фронт неправильный. И опять надо идти править. Это мое видение.

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

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

Всем привет. Нужна платная консультация от тех, кто сталкивался с октябрём в кластере или шарит оч хорошо в цмс. Проблема следующая: после переноса в кластер октябрь начал ...
wl
8
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
а я честно сказать не понимаю - нахуя идти учиться на вышку или еще куда-либо и при этом нихуя не делать, типа зачем ? просто корку получить, а нахуй она нужна тогда ?
Eugene Неелов
7
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
зараз якщо створити файл core/custom/define.php з текстом <?php const NO_SESSION = true; можна позбутися сесійних кукі (що зручно, щоб не показувати людям банери про збір та в...
Artur Kyryliuk
1
я бы даже сказал не размер резюме, а слова, которые там написаны, потому что резюме может быть на несколько десятков страниц из-за 20 летнего опыта работы, но там в опыте буде...
Eugene Неелов
2
так а я не могу просто новый сделать ? я пробовал не прокатило но может чето упускаю
Максим
3
Ребят, было ли у вас так, что переменные в WebApp —tg-viewport-height, —tg-viewport-stable-height после метода expand не обновляются, а остаются в размерах, как было до expand...
Black
3
Карта сайта