Frage

Bei der Arbeit auf ASP.NET 1.1 Projekte, die ich immer verwendet, die Global.asax zu catch-all-Fehler.Ich bin auf der Suche nach einer ähnlichen Art und Weise zu fangen Sie alle Ausnahmen in Windows Forms-Benutzer control, die endet als eine gehostete IE control.Was ist der richtige Weg zu gehen über das tun so etwas?

War es hilfreich?

Lösung

Sie müssen Griff die System.Windows.Forms.Application.ThreadException Ereignis für Windows Forms.Dieser Artikel hat mir wirklich geholfen: http://bytes.com/forum/thread236199.html.

Andere Tipps

Derzeit in meiner winforms-app, die ich habe-Handler für Application.ThreadException, wie oben, aber auch AppDomain.CurrentDomain.UnhandledException

Die meisten Ausnahmen kommen über die ThreadException handler, aber die AppDomain-man hat es auch erwischt, ein paar in meiner Erfahrung

Wenn Sie VB.NET Sie können auf die sehr bequem ApplicationEvents.vb.Diese Datei ist im Lieferumfang eine VB.NET WinForms-Projekt und enthält eine Methode für die Handhabung unbehandelte Ausnahmen.

Um diese nette Datei "Project Properties >> Anwendung >> Anwendungs-Events"

Wenn Sie nicht mit dem VB.NET, dann ja, es ist Handhabung Anwendung.ThreadException.

Behandeln Von Ausnahmen Weltweit...

Windows-Anwendung

System.Windows.Formen.Anwendung.ThreadException-Ereignis

In der Regel Verwendet in der Main-Methode.Finden MSDN-Thread-Ausnahme

Asp.Net

System.Web.HttpApplication.Fehler-Ereignis

Normalerweise Verwendet in Global.asax-Datei.Finden MSDN Global.Global asax Handler

Console Application

System.AppDomain.UnhandledException-Ereignis

In der Regel verwendet in der Main-Methode.Finden MSDN UnhandledException

Code von 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 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top