Я предпочитаю обрабатывать все необработанные исключения (вещи, которые не должны происходить) в методе Application_Error . Это место, где вы можете записать исключение и в зависимости от его характера показать правильное представление об ошибке.
Такие вещи, как пользовательские связыватели моделей, валидаторы, фильтры действий, ... также могут позволить перехватывать некоторые исключительные условия, чтобы избежать загрязнения ваших контроллеров повсюду try / catch.
Для всего, что я собираюсь обрабатывать, например, бизнес-ошибки и т. Д., Нет ничего плохого в использовании try / catch или даже лучше в использовании операторов if
, и сервисный уровень уведомляет вас о том, что какая-то операция прошла успешно или не удалась ( TryXXX
шаблон.)
Так что, как всегда, ответ на ваш вопрос: это зависит. Это зависит от того, как организовано ваше приложение, как организован ваш сервисный уровень, какие потенциальные ошибки могут произойти, с какими ошибками вы бы хотели явным образом разобраться, ... многие, многие, многие факторы и, конечно, многие, многие, много возможных решений.