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?

¿Fue útil?

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 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top