私は自分のアプリケーションの厳しいオプションをオンにすることに決めました。そして私の人生のために、小さなコードをコンパイルする方法を理解できませんでした。モジュールでは私の周り見て、私はそれが言ったイベントを処理することで動作するようになったApplicationEventsにそれを置くことについての別のポストを見た後、コード未処理の例外をキャッチする
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
のこのビットを持っていました。だから、好奇心から、私はAddHandler命令を移動することを決めたと同じクラスにし、それはその同じクラス名が異なる名前空間が明らかになった:ここ
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
が両方へのリンクです:
- Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs
- System.UnhandledExceptionEventArgs
だから私の質問は、私はそのいずれかを使用する必要があり、ありますか?私は、アプリケーションがシャットダウンするのを防ぎたいと思っています...しかし、両方のオプションは私が欲しいもののように思えます。
2番目のコードブロックで、私はあなたが 'MyApplication_UnhandledException'関数内の' AddHandler'を望んでいないと思います。それはあまり意味がありません。それは、(VB)ハンドラが最初に呼び出され、 'CurrentDomain.UnhandledException'ハンドラが2番目だと信じているので動作するかもしれませんが、あまり意味がありません。 –
e.ExitApplicationをFalseに設定すると、何も実行されません。それは11年前に仕事を止めました。気にしないでください。 –
@StuartWhitehouse私が厳重にオンにしたときに問題が頭を抱えていたことを逃したかもしれません。今日まで、このコードは3年以上にわたって喜んで働いてきました。正直なところ、私はそれが今働いたことに驚いています。私が上に投稿したコードは、コンパイラのエラーを非常にはっきりと示しています。私がコードベースで持っていたことをこの時間全体で示すことを意図していません...私は怒っていません。答えでは、私が示しているコードはうまくいくと言われました。 :DI知っている、コンパイラも私に言った –