Manejo de excepciones en MVC [Principales 2 métodos para manejar excepciones]
Publicado: 2020-12-29El manejo de excepciones en MVC se usa principalmente cuando se crean aplicaciones de línea de negocios que requieren especificaciones y condiciones particulares y tienen requisitos únicos.
Comprendamos en profundidad qué es el manejo de excepciones y cómo lo ayuda con sus aplicaciones.
Tabla de contenido
¿Qué es el manejo de excepciones?
Es el proceso de manejar y responder a condiciones excepcionales que ocurren y requieren métodos específicos; esto debe incorporarse en las aplicaciones comerciales para mejorar el resultado y garantizar que todos los requisitos se manejen adecuadamente.
Hay dos formas significativas en las que se manejan estas excepciones
- El método de atrapar y bloquear
- El método de manejo de errores de la aplicación.
Sin embargo, estos no son los únicos métodos utilizados para el proceso.
Aquí, discutiremos los diferentes pasos y técnicas que puede usar para administrar excepciones en MVC.
El método de manejo Try-Catch
El método de captura y bloqueo se considera el método tradicional utilizado para el manejo de excepciones en aplicaciones basadas en MVC. Registrará la información del error utilizando este método.

Tratar
{ agregar una excepción;}
catch (nombre de excepción)
{
volver Ver ("Error");
}
Ingresa la condición de excepción en el blog de prueba y agrega el nombre de excepción para el bloque catch. Cuando la excepción se detecta en el bloque catch, devolverá el error que menciona.
Esto también se puede usar para manejar y registrar todos los errores dentro de la aplicación.
Método OnException
Este método le permite anular el método OnException dentro de la clase del controlador. El código de error 500 se usa para manejar todos los errores registrados que resultan del manejo de excepciones en MVC .
Básicamente, puede registrar y especificar la vista de la excepción con este método sin el ciclo de prueba. No necesita habilitar la configuración <customErrors> en web.config para comenzar con este método.
clase pública HomeController: Controlador
{
Contacto de resultado de acción público ()
{
mensaje de cadena = nulo;
ViewBag.Message = msg.Length;
volver Ver();
}
anulación protegida void OnException (ExceptionContext filterContext)
{
filterContext.ExceptionHandled = verdadero;
//Registrar el error!!
//Redireccionar a la acción
filterContext.Result = RedirectToAction(“Error”, “InternalError”);
// O devolver una vista específica
filterContext.Result = nuevo VerResultado
{
ViewName = “~/Vistas/Error/ErrorInterno.cshtml”
};
}
}
Eche un vistazo al código anterior y notará que OnException es un método vacío y toma el objeto ExceptionContext como argumento.
Este argumento contiene toda la información necesaria para registrar el error. Si establece ExceptionHandled=true, podrá registrar las acciones generadas desde un controlador en particular con facilidad.
Atributo HandleError
Este es otro método popular para manejar la excepción y administrar errores dentro del MVC de su aplicación. Si observa errores creados por un método de acción o un controlador, debe usar este método.
Con este atributo, puede seleccionar mostrar una vista personalizada para la excepción en particular. Esto podría ocurrir en el método de acción o en el controlador.
Nuevamente, este método también se usa cuando administra errores con el código 500. No puede registrar excepciones usando este método.
Hay una forma particular de agregar este atributo para que funcione a tu gusto. Debe agregar el filtro de atributo HandleError dentro del método FilterConfig.RegisterGlobalFilters().
Junto con esto, debe asegurarse de que el modo de errores personalizados <CustomErrors mode = “on”> esté siempre activado dentro de web.config. En este punto, puede agregar el atributo al modo activo.
clase pública HomeController: Controlador
{

[ManejarError]
Contacto de resultado de acción público ()
{
mensaje de cadena = nulo;
ViewBag.Message = msg.Length;
volver Ver();
}
}
El código que acabamos de mencionar funciona mejor para el contexto y las necesidades de manejo de excepciones.
Aquí el atributo está configurado para el método de acción Contact(). Cuando se compila el proceso, verá el Error.cshtml que se muestra en el modo de vista.
Esto ocurrirá solo cuando ocurra una excepción. Esta es la vista predeterminada en todos los casos excepcionales. También puede usar este atributo para configurar las distintas páginas para administrar los diferentes tipos de excepciones.
Si bien este atributo funciona perfectamente para el manejo de errores y administra todo tipo de configuraciones, es posible que no funcione en todas partes. Elíjalo para algunos casos en los que crea que ayudará a su aplicación.
El método no admite las excepciones de registro. Se las arregla para capturar solo excepciones HTTP dentro del código 500. No puede capturar las excepciones de otros controladores. Entonces, no es un atributo que puedas considerar para todas las ocasiones y necesidades.
Heredar de HandleError
Incluso puede usar este método para manejar excepciones. El método anterior que discutimos no le permite reutilizar los componentes, lo que puede considerarse un inconveniente.
No puede funcionar si tiene que seguir codificando para todas las excepciones que deben registrarse.
Como resultado, tendrá que usar esta extensión. Le permite heredar del atributo HandleError y usarlo en el controlador específico. Como resultado, puede manejar las excepciones sin tener que codificar con demasiada frecuencia.
Lea también: Preguntas de la entrevista de manejo de excepciones
Evento de error de aplicación
Application_Error Event es otro método más para manejar el error de la aplicación y administrar las excepciones. Esta parte requiere que controle el evento Application_Error dentro del archivo global.asax.
Puede desencadenar este evento para todos los tipos de códigos de error y manejo de excepciones en MVC , lo que lo hace más fácil de usar y uno de los mejores métodos para manejar excepciones.
Esto utiliza el método de registro de errores principal, que se puede usar para administrar todas las excepciones que no se manejan dentro de la aplicación.
Gestión de errores HTTP
El método mencionado aquí no puede manejar ninguna de las excepciones HTTP. Estamos hablando de excepciones como "Archivo no encontrado" y otros mensajes de error comunes que seguramente recibirá.
Deberá ingresar los detalles del error y el código de error dentro de la sintaxis para administrar estas excepciones.
Deberá tener en cuenta todos los posibles códigos de error y mensajes que probablemente reciba como parte de la aplicación antes de liberar la sintaxis.
Para mejorar su conocimiento de las aplicaciones de línea de negocios y adquirir competencia en los lenguajes de programación, únase a upGrad .
Con una variedad de cursos y una variedad de opciones profesionales, aumentará sus oportunidades profesionales.
Conéctese con nuestros expertos o reserve una llamada con nosotros para saber más sobre las opciones personalizadas para usted.
Inscríbase en cursos de ingeniería de software de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión
Cuando se trata del manejo de excepciones en MVC , debe asegurarse de que el método que está optando le permita registrar todos los errores posibles. Debería poder reutilizar los componentes y administrar todos los errores de la aplicación. Aprenda sobre el manejo de excepciones en Java.
Si desea que un solo método maneje todas las posibles excepciones, debe optar por el método Global Application_Error . Se asegura de registrar todos los errores junto con <CustomErrors> y asegura que se registren en Web.Config.
Con este método, el usuario es redirigido a las páginas específicas cuando encuentra el error. El manejo de excepciones es uno de los conceptos centrales del desarrollo de aplicaciones usando ASP.Net MVC.
Esperamos que este artículo haya sido útil para aprender sobre el manejo de excepciones en MVC; explore nuestros blogs para saber más sobre las diferentes aplicaciones.
Si está interesado en obtener más información sobre el desarrollo de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.
