В ASP.NET MVC, почему бы мне не использовать HandleError на базовом контроллере и покончить с этим?

Поскольку HandleError наследуется производными контроллерами, почему бы мне просто не создать (или не иметь) базовый контроллер и не применить к нему HandleError, чтобы любые контроллеры, которые наследуются от базового контроллера, также автоматически обрабатывались?

А затем я бы добавил переопределение HandleError на контроллеры и отдельные действия.

Может кто-нибудь придумать причину, по которой я не хотел бы применять HandleError к базовому контроллеру?

2 ответа

Я знаю, что этот вопрос старый, но если вы сейчас используете MVC 3, я бы предложил вместо этого использовать глобальный фильтр. Смотрите раздел "Глобальные фильтры" поста Скотта Гатри здесь

Для меня HandleError на базовом контроллере похож на окружение всего вашего приложения блоком try{} catch{}. Вы фактически прекратили обрабатывать исключения, такие как исключения, которые сделали их нормальным явлением в вашем приложении.

Вы можете "поймать" только то, что, как вы знаете, может случиться, а не все, что может случиться.

Другие вопросы по тегам