Global de Manejo de excepciones para control de formularios windows forms
-
08-06-2019 - |
Pregunta
Cuando se trabaja en ASP.NET 1.1 proyectos siempre he utilizado el Mundial.asax para la captura de todos los errores.Estoy buscando una manera similar a capturar todas las excepciones en un formulario Windows Forms control de usuario, que termina siendo un alojado de IE de control.Cuál es la forma correcta de ir sobre hacer algo como esto?
Solución
Usted necesita para manejar la System.Windows.Forms.Application.ThreadException
eventos de los Formularios Windows forms.Este artículo realmente me ayudó: http://bytes.com/forum/thread236199.html.
Otros consejos
Actualmente en mi aplicación winforms he controladores para Application.ThreadException
, como se mencionó anteriormente , pero también AppDomain.CurrentDomain.UnhandledException
La mayoría de las excepciones llegan a través de la ThreadException
controlador, pero el dominio de aplicación, también se tiene cogido un par en mi experiencia
Si estás usando VB.NET puede pulsar en la muy conveniente ApplicationEvents.vb.Este archivo viene gratis con un VB.NET WinForms proyecto y contiene un método para el manejo de las excepciones no controladas.
Para llegar a este ingenioso archivo, las "Propiedades del Proyecto >> Aplicación >> Eventos de Aplicación"
Si no estás utilizando VB.NET, entonces sí, es el manejo de Aplicación.ThreadException.
Para El Manejo De Excepciones A Nivel Mundial...
Aplicación De Windows
Sistema.Windows.Los formularios.Aplicación.ThreadException evento
Generalmente se Utiliza en el Método Main.Consulte MSDN Hilo de Excepción
Asp.Net
Sistema.Web.HttpApplication.Evento de Error
Normalmente se Utiliza en el Mundial.archivo asax.Consulte MSDN Global.asax Global de los Controladores
Aplicación De Consola
Sistema.Dominio de aplicación.Evento UnhandledException
Generalmente se utiliza en el Método Main.Consulte MSDN UnhandledException
Código de MSDN: http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2
Sub Main()
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
AddHandler currentDomain.UnhandledException, AddressOf MyHandler
Try
Throw New Exception("1")
Catch e As Exception
Console.WriteLine("Catch clause caught : " + e.Message)
Console.WriteLine()
End Try
Throw New Exception("2")
End Sub
Sub MyHandler(sender As Object, args As UnhandledExceptionEventArgs)
Dim e As Exception = DirectCast(args.ExceptionObject, Exception)
Console.WriteLine("MyHandler caught : " + e.Message)
Console.WriteLine("Runtime terminating: {0}", args.IsTerminating)
End Sub