Manejo global de excepciones para control de winforms

votos
33

Al trabajar en proyectos de ASP.NET 1.1 siempre usé Global.asax para detectar todos los errores. Estoy buscando una forma similar de detectar todas las excepciones en un control de usuario de Windows Forms, que termina siendo un control alojado de IE. ¿Cuál es la forma correcta de hacer algo como esto?

Publicado el 05/08/2008 a las 21:05
fuente por usuario
En otros idiomas...                            


5 respuestas

votos
24

Necesita manejar el System.Windows.Forms.Application.ThreadExceptionevento para Windows Forms. Este artículo realmente me ayudó: http://bytes.com/forum/thread236199.html .

Respondida el 05/08/2008 a las 21:11
fuente por usuario

votos
11

Actualmente en mi aplicación de winforms tengo controladores para Application.ThreadException, como el anterior, pero tambiénAppDomain.CurrentDomain.UnhandledException

La mayoría de las excepciones llegan a través del ThreadExceptioncontrolador, pero AppDomain también ha atrapado algunas en mi experiencia

Respondida el 05/08/2008 a las 21:42
fuente por usuario

votos
6

Si está utilizando VB.NET, puede acceder a los muy prácticos ApplicationEvents.vb. Este archivo viene de forma gratuita con un proyecto WinForms de VB.NET y contiene un método para manejar excepciones no controladas .

Para llegar a este archivo ingenioso, es "Propiedades del proyecto >> Aplicación >> Eventos de la aplicación"

Si no está usando VB.NET, entonces sí, está manejando Application.ThreadException .

Respondida el 05/08/2008 a las 21:16
fuente por usuario

votos
3

Para controlar las excepciones A nivel mundial ...

Aplicación para windows

evento System.Windows.Forms.Application.ThreadException

Generalmente se usa en el método principal. Consulte MSDN Excepción Tema

Asp.Net

evento System.Web.HttpApplication.Error

Normalmente se utiliza en el archivo Global.asax. Consulte MSDN Global.asax Global Manipuladores

Aplicación de consola

evento System.AppDomain.UnhandledException

Generalmente se usa en el método principal. Consulte MSDN UnhandledException

Respondida el 19/05/2015 a las 11:36
fuente por usuario

votos
2

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 
Respondida el 27/09/2013 a las 22:55
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more