My.Application.UnhandledException イベント
更新 : 2008 年 7 月
アプリケーションが未処理の例外を検出したときに発生します。
' Usage
Public Sub Me_UnhandledException( _
ByVal sender As Object, _
ByVal e As UnhandledExceptionEventArgs _
) Handles Me.UnhandledException
End Sub
' Declaration
Public Event UnhandledException( _
ByVal sender As Object, _
ByVal e As UnhandledExceptionEventArgs _
)
パラメータ
sender
イベントの発生元の Object。e
未処理の例外と詳細な情報が格納された UnhandledExceptionEventArgs オブジェクト。
解説
アプリケーションは未処理の例外を検出すると UnhandledException イベントを発生させます。これは Visual Basic アプリケーション モデルに含まれるイベントです。詳細については、「Visual Basic アプリケーション モデルの概要」を参照してください。
e パラメータの Exception プロパティを使用すると、このイベントを発生させた未処理の例外にアクセスできます。
e パラメータの ExitApplication プロパティを使用すると、アプリケーションを終了するかどうかを制御できます。既定では、ExitApplication は True になっているため、アプリケーションは UnhandledException のイベント ハンドラが実行された後で終了します。UnhandledException イベント ハンドラ内で、この値を False に設定すると、アプリケーションの実行を継続し、待機中の状態に戻すことができます。
UnhandledException イベント ハンドラ用のコードは、ApplicationEvents.vb ファイルに格納されています。このファイルは既定では非表示です。
アプリケーション イベントのコード エディタ ウィンドウを表示するには、次の操作を行います。
ソリューション エクスプローラ でプロジェクトが選択されている状態で、[プロジェクト] メニューの [プロパティ] をクリックします。
[アプリケーション] タブをクリックします。
[アプリケーション イベントの表示] をクリックしてコード エディタを開きます。
詳細については、「方法 : アプリケーション イベントを処理する (Visual Basic)」を参照してください。
メモ : |
---|
Visual Basic コンパイラでは、デバッグ用にビルドされたアプリケーションがこのイベントを発生させることはありません。これは、デバッガが未処理の例外を処理できるようにするためです。つまり、アプリケーションを Visual Studio の統合開発環境のデバッガで実行してテストしている場合は、UnhandledException イベント ハンドラは呼び出されません。デバッグ用のアプリケーションのビルドの詳細については、「/debug (Visual Basic)」を参照してください。 |
処理手順
My.Application.UnhandledException イベントに関連するタスクの例を次の表に示します。
目的 |
参照項目 |
---|---|
Visual Basic アプリケーション モデルによって提供されるイベントを使用してコードを実行する |
|
未処理の例外のログを記録する |
使用例
次の例は、My.Application.UnhandledException イベントを使用して、未処理の例外をすべてログに記録します。
Private Sub MyApplication_UnhandledException( _
ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs _
) Handles Me.UnhandledException
My.Application.Log.WriteException(e.Exception, _
TraceEventType.Critical, _
"Unhandled Exception.")
End Sub
アプリケーション イベントのコードを、コード エディタ ウィンドウに入力する必要があります。このウィンドウを利用するには、このトピックの「解説」で説明した手順に従ってください。詳細については、「方法 : アプリケーション イベントを処理する (Visual Basic)」を参照してください。
アプリケーションにデバッガが結合されている場合、UnhandledException イベントは発生しないため、この例は Visual Studio の統合開発環境の外部で実行する必要があります。
必要条件
名前空間 : Microsoft.VisualBasic.ApplicationServices
クラス : WindowsFormsApplicationBase
アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)
使用可能なプロジェクトの種類
プロジェクトの種類 |
使用可/不可 |
---|---|
Windows アプリケーション |
可 |
クラス ライブラリ |
不可 |
コンソール アプリケーション |
不可 |
Windows コントロール ライブラリ |
不可 |
Web コントロール ライブラリ |
不可 |
Windows サービス |
不可 |
Web サイト |
不可 |
アクセス許可
次のアクセス許可が必要です。
アクセス許可 |
説明 |
---|---|
このイベントのイベント ハンドラを追加できるかどうかを制御します。関連する列挙値 : SecurityPermissionFlag.ControlAppDomain。 |
詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。
参照
概念
参照
Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs
変更履歴
日付 |
履歴 |
理由 |
---|---|---|
2008 年 7 月 |
「解説」の UnhandledException イベント ハンドラの設定方法に関する情報を変更 |
コンテンツ バグ修正 |