Quiero manejar excepciones no detectadas en mi aplicación ASP.NET MVC 3, de modo que pueda comunicar el error al usuario a través de la vista de error de la aplicación. ¿Cómo intercepto las excepciones no detectadas? Me gustaría poder hacer esto globalmente, no para cada controlador (aunque no me importaría saber cómo hacer esto también).¿Cómo manejo las excepciones no detectadas en una aplicación ASP.NET MVC 3?
Respuesta
Puede configurar un filtro de error global en Global.asax
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
Los conjuntos anteriores un gestor de errores por defecto que dirige todas las excepciones a la vista estándar de error. La vista de error se escribe en un objeto modelo System.Web.Mvc.HandleErrorInfo
que expone los detalles de la excepción.
También debe activar los errores personalizados en el archivo web.config para ver esto en su máquina local.
<customErrors mode="On"/>
También se pueden definir varios filtros para los tipos de error específicos:
filters.Add(new HandleErrorAttribute
{
ExceptionType = typeof(SqlException),
View = "DatabaseError",
Order = 1
});
/* ...other error type handlers here */
filters.Add(new HandleErrorAttribute()); // default handler
Tenga en cuenta que sólo se HandleErrorAttribute
controlar los errores que se producen en el interior de la tubería MVC (es decir, 500 errores).
puede utilizar filtros HandleErrorAttribute,
[ErrorHandler(ExceptionType = typeof(Exception), View = "UnhandledError", Order = 1)]
public abstract class BaseController : Controller
{
}
básicamente puede hacer que este en la parte superior de un controlador de base y definir la UnhandledError.cshtml en la carpeta compartida ve.
Y si desea registrar los errores no controlados antes de mostrar el mensaje de error, puede extender la clase HandleErrorAttribute y poner la lógica para hacer el registro dentro del método OnException.
public class MyErrorHandlerAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext exceptionContext)
{
Logger.Error(exceptionContext.Exception.Message,exceptionContext.Exception);
base.OnException(exceptionContext);
}
}
Para mayor completitud, también está el manejador Application_Error en Global.asax.
con el fin de hacer este trabajo que seguirán los siguientes blog post y luego hacer la siguiente adición a los dos archivos Web.config (el uno raíz y el otro en la carpeta Vistas) dentro del nodo <system.web>
:
...
<system.web>
<customErrors mode="On"/>
...
creo que sirve ...
Global Error Handling
guardar en web.config
<customErrors mode="On"/>
error se mostrará en Error.cshtml que es compartida reside en carpeta
- Cambio en Error.cshtml
@model System.Web.Mvc.HandleErrorInfo @{ ViewBag.Title = "Error"; } <h2> <p>Sorry, an error occurred while processing your request.</p> <p>Controller Name: @Model.ControllerName</p> <p>Action Name : @Model.ActionName</p> <p>Message: @Model.Exception.Message</p> </h2>
- 1. ASP.NET MVC manejo de excepciones
- 2. Manejo de excepciones en global.asax ASP.NET MVC
- 3. Manejo de errores en asp.net mvc 3
- 4. ¿Cómo registrar excepciones no detectadas de una aplicación Q?
- 5. ¿Cómo registro las excepciones no detectadas en PHP?
- 6. Manejo de excepciones no detectadas en la aplicación de consola C#
- 7. manejo de excepciones en ASP.NET MVC y Ajax - [HandleException] filtrar
- 8. ¿Cómo registro las excepciones no controladas en ASP.NET MVC?
- 9. ¿Son todas las excepciones no detectadas fatales en PHP?
- 10. Server-side ASP.Net Ajax manejo de excepciones
- 11. ¿Cómo puedo interceptar excepciones no detectadas en Tomcat?
- 12. Cómo capturar excepciones no detectadas en una aplicación web de servlet de Java
- 13. ASP.net MVC [HandleError] no detecta excepciones
- 14. ¿Cómo manejar excepciones generales en Asp.Net MVC?
- 15. Manejo de excepciones en una aplicación web Java
- 16. ASP.NET MVC: ¿Dónde arrojar las excepciones?
- 17. ¿Activa Javascript un evento para excepciones no controladas/no detectadas?
- 18. ¿Cómo y dónde manejar las excepciones en una aplicación web de 3 niveles? Específicamente SQL Base de excepciones
- 19. Actualizado ASP.Net MVC 3 Manejo de solicitudes Diagrama de tuberías?
- 20. Versiones conflictivas de páginas web ASP.NET detectadas
- 21. Buscar excepciones no detectadas en el código de C#
- 22. Manejo de excepciones en una aplicación en capas
- 23. ¿Dónde manejo las excepciones asincrónicas?
- 24. ASP.NET MVC 3: Adjuntar a las secciones
- 25. Manejo elegante de excepciones de aplicaciones en una aplicación Tornado
- 26. ASP.NET MVC 3 - Las mejores prácticas para el manejo de Modelo en Ver
- 27. Spring MVC manejo de excepciones con HandlerExceptionResolver
- 28. ¿Cómo manejar las excepciones no detectadas en javascript sin try/catch-block?
- 29. DropDownList en ASP.NET MVC 3
- 30. Cómo usar Console.WriteLine en ASP.Net MVC 3
Gracias, este funcionó muy bien :) – aknuds1