Estoy buscando volver a trabajar y simplificar nuestro manejo de errores en una aplicación que admita. Actualmente tenemos todas nuestras páginas heredadas de una clase base que creamos, que a su vez obviamente hereda de System.Web.UI.Page. Dentro de esta clase base, el método OnError se está anulando actualmente y, a su vez, llamando a MyBase.OnError y luego llamando a uno de nuestros métodos de registro personalizados.Cuándo anular OnError?
No veo ningún beneficio de anular el método OnError, y creo que sería mejor dejar que el método Application_Error en Global.asax se ocupe de la excepción no controlada (iniciar sesión) y luego la sección customErrors en la configuración desencadenaría un proceso para redirigir al usuario.
Buscando en línea parece que las personas anulan este método con bastante frecuencia, pero no veo la necesidad de hacerlo y el artículo this de MSDN me hace pensar lo mismo.
Pero, de nuevo, ¿por qué reemplazar el método OnError? Si necesita manejar información dentro del contexto de la página, entiendo por qué desea manejar el error dentro de ese contexto (registrando datos específicos sobre la página, la entrada del usuario, muestra mensajes en la pantalla, etc.), pero ¿por qué anular? el método OnError existente en lugar de usar Page_Error o Application_Error? –
page_error se origina en onerror (se llama a Page_Load desde el método OnLoad, etc.), por eso OnError; es lo mismo que Page_Error ... Así que la verdadera pregunta es por qué error de página vs. aplicación ... –
Con el enlace que proporcioné arriba, el párrafo sobre la sección "global.asax: Application_Error" menciona que poner código en una El método OnError Override no es lo mismo que usar Page_Error. Por lo tanto, en su caso, supongo que está anulando esa funcionalidad para redirigir por su cuenta, por lo que probablemente esté bien. En mi caso, no estamos anulando ninguna de esas funciones dentro del método OnError, solo estamos haciendo un registro muy general sobre la excepción que se lanzó. Creo que podríamos poner el registro en el nivel de la aplicación y eliminar nuestro método OnError. Gracias por tu contribución. –