4

VB.Net でアプリケーションを作成しました。ただし、一部のユーザーは起動時にクラッシュに直面します。それは、「問題が原因でこのプログラムが正しく動作しなくなった」ということであり、「プログラムを閉じる」というボタン 1 つだけです。アプリの読み込み時にいろいろなことが起こっているので、何が原因なのかを知ることはできますか?

4

1 に答える 1

6

プロジェクトのプロパティで「アプリケーション フレームワーク」が有効になっている場合は、「アプリケーション」プロジェクト プロパティ ページの「アプリケーション イベントの表示」ボタンをクリックします。次に、イベント ハンドラーを追加します。

Partial Friend Class MyApplication
    Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
        ' ...
    End Sub
End Class

アプリケーション フレームワークを使用していない場合は、Mainメソッド全体を try catch ブロックで囲む必要があります。ただし、これはプライマリ スレッドで発生する例外のみをキャッチします。アプリケーションがマルチスレッドの場合、次のようなメソッドを作成することで、すべてのスレッドからの例外を処理できます。

Public Sub UnhandledExceptionHandler(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs)
    ' ...
End Sub

次に、次のように、現在のドメインのUnhandledExceptionイベントに添付します。

AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf UnhandledExceptionHandler

そのイベント ハンドラーは、現在のスレッドに関係なく、ドメイン内の任意の場所からすべての未処理の例外に対して呼び出されます。

于 2012-05-09T15:34:48.843 に答える