В ASP.NET MVC, почему бы мне не использовать HandleError на базовом контроллере и покончить с этим?
Поскольку HandleError наследуется производными контроллерами, почему бы мне просто не создать (или не иметь) базовый контроллер и не применить к нему HandleError, чтобы любые контроллеры, которые наследуются от базового контроллера, также автоматически обрабатывались?
А затем я бы добавил переопределение HandleError на контроллеры и отдельные действия.
Может кто-нибудь придумать причину, по которой я не хотел бы применять HandleError к базовому контроллеру?
2 ответа
Я знаю, что этот вопрос старый, но если вы сейчас используете MVC 3, я бы предложил вместо этого использовать глобальный фильтр. Смотрите раздел "Глобальные фильтры" поста Скотта Гатри здесь
Для меня HandleError на базовом контроллере похож на окружение всего вашего приложения блоком try{} catch{}. Вы фактически прекратили обрабатывать исключения, такие как исключения, которые сделали их нормальным явлением в вашем приложении.
Вы можете "поймать" только то, что, как вы знаете, может случиться, а не все, что может случиться.