c# - practice - Captura de excepciones dentro de las páginas.aspx y.ascx
throw custom exception c# (5)
¿Quieres atrapar la excepción y manejarla?
¿O quieres evitar la pantalla amarilla de la muerte? Si está tratando de evitar la pantalla amarilla de la muerte, consulte cómo manejar el evento de Error
en la aplicación HttpApplication
(en otras palabras, en su Global.asax).
Consulte la siguiente página de MSDN para obtener más detalles: http://msdn.microsoft.com/en-us/library/system.web.httpapplication.error.aspx
Específicamente este párrafo:
Se puede acceder a la excepción que provoca el evento Error mediante una llamada al método GetLastError. Si su aplicación genera salida de error personalizada, suprima el mensaje de error predeterminado generado por ASP.NET mediante una llamada al método ClearError.
Las preguntas lo dicen todo, toma este código de ejemplo:
<ul id="css-id">
<li>
<something:CustomControl ID="SomeThingElse" runat="server" />
<something:OtherCustomControl runat="server" />
</li>
</ul>
Ahora bien, si se arroja un error en algún lugar dentro de estos controles (que están ubicados en una página maestra), se eliminará todo el sitio, ¿cómo se detectarían estas excepciones?
Agregue un global.asax en implementar el controlador Application_Error. Use la función Server.GetLastError () para controlar la excepción lanzada.
Desafortunadamente, una excepción no controlada siempre generará un error en su sitio. Sin embargo, puedes evitar esto de varias maneras.
- Use la sección en su web.config para mostrar un mensaje fácil de usar
- En su Global.asax, o un controlador personalizado, capture su excepción no controlada y reaccione en consecuencia, como esta
mejor solución
- ¡Asegúrate de que los controles no arrojen excepciones no controladas!
Puede ver todas las excepciones que no se manejan en ninguna otra parte de la página / clase Global.asax. Mirar:
protected void Application_Error(Object sender, EventArgs e)
método.
Utilizando el método global_asax Application_Error, como se describe en Cómo crear páginas personalizadas de informes de errores en ASP.NET utilizando Visual C # .NET .
Un enfoque alternativo sería usar un módulo HTTP ; esto le da más flexibilidad (puede manejar errores de múltiples aplicaciones, por ejemplo).