Global Unntak håndtering for WinForms kontroll

stemmer
33

Når man arbeider på ASP.NET 1.1 prosjekter jeg alltid brukt Global.asax å fange alle feil. Jeg leter etter en lignende måte å fange alle unntak i en Windows Forms brukerkontroll, som ender opp med å bli en hosted IE kontroll. Hva er den riktige måten å gå om du gjør noe som dette?

Publisert på 05/08/2008 klokken 20:05
kilden bruker
På andre språk...                            


5 svar

stemmer
24

Du må håndtere System.Windows.Forms.Application.ThreadExceptionhendelsen for Windows Forms. Denne artikkelen hjalp meg virkelig: http://bytes.com/forum/thread236199.html .

Svarte 05/08/2008 kl. 20:11
kilden bruker

stemmer
11

For tiden i mine WinForms app jeg har handlers for Application.ThreadException, som ovenfor, men ogsåAppDomain.CurrentDomain.UnhandledException

De fleste unntakene kommer via den ThreadExceptionhandler, men AppDomain man har også fanget noen i min erfaring

Svarte 05/08/2008 kl. 20:42
kilden bruker

stemmer
6

Hvis du bruker VB.NET, kan du trykke inn den veldig praktisk ApplicationEvents.vb. Denne filen kommer gratis med en VB.NET WinForms prosjektet og inneholder en metode for å håndtere Ubehandlede unntak .

For å komme til denne kjekk liten fil, er det "prosjektegenskaper >> Søknad >> Søknad Events"

Hvis du ikke bruker VB.NET, så ja, det er håndtering Application.ThreadException .

Svarte 05/08/2008 kl. 20:16
kilden bruker

stemmer
3

Håndtere Unntak globalt ...

Windows-program

System.Windows.Forms.Application.ThreadException event

Vanligvis brukes i Main Method. Henvis MSDN Tråd Exception

Asp.Net

System.Web.HttpApplication.Error event

Normalt brukes i Global.asax fil. Henvis MSDN Global.asax Global Handlers

Console Application

System.AppDomain.UnhandledException event

Vanligvis brukes i Main Method. Henvis MSDN UnhandledException

Svarte 19/05/2015 kl. 11:36
kilden bruker

stemmer
2

Kode fra 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 
Svarte 27/09/2013 kl. 21:55
kilden bruker

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