Manipulação de exceção global para o controle winforms

votos
33

Ao trabalhar em ASP.NET 1.1 projetos que eu sempre usei o Global.asax para pegar todos os erros. Eu estou procurando uma maneira semelhante ao capturar todas as exceções em um controle Windows Forms usuário, que acaba sendo um controle IE hospedado. O que é a maneira correta de ir sobre fazer algo assim?

Publicado 05/08/2008 em 21:05
fonte usuário
Em outras línguas...                            


5 respostas

votos
24

Você precisa lidar com o System.Windows.Forms.Application.ThreadExceptionevento para Windows Forms. Este artigo realmente me ajudou: http://bytes.com/forum/thread236199.html .

Respondeu 05/08/2008 em 21:11
fonte usuário

votos
11

Actualmente no meu winforms app eu tenho manipuladores para Application.ThreadException, como acima, mas tambémAppDomain.CurrentDomain.UnhandledException

A maioria das exceções chegam através do ThreadExceptionmanipulador, mas o AppDomain também travou um pouco na minha experiência

Respondeu 05/08/2008 em 21:42
fonte usuário

votos
6

Se você estiver usando VB.NET, você pode explorar o ApplicationEvents.vb muito conveniente. Este arquivo vem de graça com um projeto WinForms VB.NET e contém um método para o tratamento de exceções não tratadas .

Para chegar a este arquivo bacana, é "Propriedades do projeto >> Aplicação >> Eventos de Aplicação"

Se você não estiver usando VB.NET, então sim, ele está lidando Application.ThreadException .

Respondeu 05/08/2008 em 21:16
fonte usuário

votos
3

Para lidar com exceções Globalmente ...

Windows Application

evento System.Windows.Forms.Application.ThreadException

Geralmente utilizado no método principal. Consulte MSDN Exceção Tópico

Asp.Net

evento System.Web.HttpApplication.Error

Normalmente usado no arquivo global. Consulte MSDN Global.asax globais manipuladores

Aplicação de console

evento System.AppDomain.UnhandledException

Geralmente utilizado no método principal. Consulte MSDN UnhandledException

Respondeu 19/05/2015 em 11:36
fonte usuário

votos
2

Código da 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 
Respondeu 27/09/2013 em 22:55
fonte usuário

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