Ich habe ein Problem, wenn eine unhandeld Ausnahme beim Debuggen eines WinForm VB.NET-Projekts auftritt.
Das Problem ist, dass meine Anwendung beendet wird und ich die Anwendung erneut starten muss, anstatt die Aktion erneut zu versuchen, wie es in VS2003 der Fall war
Die unhandliche Ausnahme ist in der neuen Klasse My.MyApplication in ApplicationEvents.vb implementiert
Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
Dim handler As New GlobalErrorHandler()
handler.HandleError(e.Exception)
e.ExitApplication = False
End Sub
Hinweis: handler.HandleError zeigt lediglich ein Dialogfeld an und protokolliert den Fehler in einer Protokolldatei.
Ich habe auch den folgenden Code ausprobiert, der in VS2003 funktionierte, aber das gleiche Verhalten zeigt, wenn er in VS2008 ausgeführt wird:
AddHandler System.Windows.Forms.Application.ThreadException, AddressOf OnApplicationErrorHandler
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf OnUnhandledExceptionHandler
OnApplicationErrorHandler und OnUnhandledExceptionHandler tun dasselbe wie handle.HandleError
Das Ausführen der Anwendung außerhalb von VS2008 führt zu dem erwarteten Verhalten (die Anwendung wird nicht beendet), aber es erhöht unseren Testzyklus während des Debuggens.
Aktualisierung: Ich habe in meiner Antwort Beispielcode hinzugefügt, um dieses Problem in C# zu demonstrieren