Soy consciente de que hay muchas preguntas en SO acerca de Error al manejar en ASP.NET MVC.Ventajas de [HandleError] sobre Application_Error
que ver, sobre todo la gente está tratando de lograr cosas en tres formas:
Crear una
BaseController
y anular el métodoOnException
Usando
[HandleError]
o filtros de excepción personalizada.Application_Error
evento en global.asax.cs
Las dos primeras formas no pueden manejar todas las excepciones y que sólo hacen que se plantean por métodos de acción/filtros, por lo que, obviamente, la tercera es va a ser el mejor enfoque para un manejador de excepciones globales.
Mi pregunta es ¿por qué debería elegir [HandleError]
? ¿Qué beneficios trae que no pueda obtener Application_Error
?
Finalmente, ¿quiero tomar en serio la sección customErrors
en una aplicación MVC?
Nota: Mi requisito es habitual. Siempre que ocurra una excepción, regístrela y devuelva una página de error personalizada. La página de error personalizado puede cambiar según el código de estado.
No veo muchas razones por las que alguien quiera manejar los errores de forma diferente en diferentes controladores y acciones. Ok, si hago esa lógica en [HandleError], entonces otra vez quiero hacer eso en global.asax ¿verdad? – VJAI
¿página de error diferente para dispositivos móviles? Página de error personalizado para los usuarios? Fragmento de HTML para las solicitudes ajax? ¿Imagen de error personalizada para enlaces de imagen rotos? ¿Tiene acceso a páginas de error prohibidas para ciertos controladores? No es difícil pensar en razones para manejar los errores de forma diferente. – bhamlin