Довольно большой проект с кучей модулей, разделов и прочего. Поделистесь, пжлст, опытом как вы организовуете исключения в немаленьких проектах? Например, где-то в глубине вызовов методов возникает исключение "в анкете указан неизвестный город". Никто из промежуточных методов не знает, что с таким делать и исклюение всплывает на самый верх, где находит свой обработчик и юзеру выводят формочку, уточняют город и повторяют запрос. Или ещё. При коммите транзкции попадаем на конфликт. Выбрасываем исключение, которое должен подхватить код, запустивший транзакцию, определить, что у нас проблема именно с параллельным доступом к данным и запустить код заново с небольшой задержкой. А если ошибка возникла в запросе из-за некорректных данных, то никакого повтора транзакции не нужно. Строить широкую сеть с наследниками или использовать один класс и опереться на коды ошибок? По каким соображениям делать новый класс, когда новый код? Для этого всего нужна стройная система исключений и их обработчиков. Опыта в их построении нет. помогите минимизировать шишки, пжлст.
вот так приблизительно все и делают https://laravel.com/docs/5.6/validation пишешь отдельный класс обычным if обрабатываешь и возвращаешь куда нужно try catch немного для другого.
Да что ты! Валидотор от ларавел бросает ексепшен в случае ошибок, ларавел его отлавливает и мутит свою магию с переменной $errors в шаблонах. try catch в любом месте, в лубой ситуации пригодится --- Добавлено --- Шучу try catch, вообще не надо использовать --- Добавлено --- https://php.ru/manual/function.set-error-handler.html