Ich beschloss, die strikte Option auf einer meiner Anwendungen einzuschalten. Und für das Leben von mir konnte ich nicht herausfinden, wie man ein bisschen Code kompiliert. In einem Modul hatte ich dieses Stück CodeCatching unbehandelte Ausnahmen Entscheidung
Sub Main()
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf CurrentDomain_UnhandledException
End Sub
Private Sub CurrentDomain_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs)
e.ExitApplication = False
End Sub
nach schaut sich um und sah einen anderen Posten darüber in den Application setzen, ich habe es durch den Umgang mit dem Fall zu arbeiten. Also aus Neugier habe ich beschlossen, die AddHandler und in derselben Klasse zu bewegen, und dann wurde klar, dass sein der gleiche Klasse Name, aber unterschiedliche Namensräume:
Partial Friend Class MyApplication
Private Sub MyApplication_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs) Handles Me.UnhandledException
e.ExitApplication = False
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf CurrentDomain_UnhandledException
End Sub
Private Sub CurrentDomain_UnhandledException(sender As Object, e As System.UnhandledExceptionEventArgs)
e.ExitApplication = False
End Sub
End Class
Hier ist ein Link zu beiden ist:
- Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs
- System.UnhandledExceptionEventArgs
Also meine Frage ist, welche soll ich verwenden? Ich möchte verhindern, dass die App herunterfährt ... aber beide Optionen scheinen so zu sein, wie ich es möchte.
In Ihrem zweiten Codeblock glaube ich nicht, dass Sie den 'AddHandler' innerhalb der Funktion' MyApplication_UnhandledException' wollen - das macht wenig Sinn. Es könnte funktionieren, da ich glaube, dass (VB) Handler zuerst aufgerufen wird, und der 'CurrentDomain.UnhandledException' Handler zweitens, aber es macht nicht viel Sinn. –
Wenn Sie e.ExitApplication auf False setzen, wird nichts ausgeführt. Das hat vor 11 Jahren aufgehört zu arbeiten, mach dir keine Sorgen. –
@StuartWhitehouse Sie haben vielleicht übersehen, dass das Problem aufkam, als ich mich streng anschaltete. Bis heute funktioniert dieser Code seit über 3 Jahren. Ehrlich gesagt bin ich überrascht, dass es jetzt funktioniert hat. Der Code, den ich oben gepostet habe, zeigt sehr deutlich den Compilerfehler und soll nicht zeigen, was ich in meiner Codebasis die ganze Zeit gehabt habe ... Ich bin nicht wütend oder irgendetwas (trotz wie das liest) ist es nur das hier und In der Antwort wurde erwähnt, dass der Code, den ich zeige, funktioniert. : DI wissen, der Compiler sagte mir auch –