次の方法で共有


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 ファイルに格納されています。このファイルは既定では非表示です。

アプリケーション イベントのコード エディタ ウィンドウを表示するには、次の操作を行います。

  1. ソリューション エクスプローラ でプロジェクトが選択されている状態で、[プロジェクト] メニューの [プロパティ] をクリックします。

  2. [アプリケーション] タブをクリックします。

  3. [アプリケーション イベントの表示] をクリックしてコード エディタを開きます。

詳細については、「方法 : アプリケーション イベントを処理する (Visual Basic)」を参照してください。

メモ :

Visual Basic コンパイラでは、デバッグ用にビルドされたアプリケーションがこのイベントを発生させることはありません。これは、デバッガが未処理の例外を処理できるようにするためです。つまり、アプリケーションを Visual Studio の統合開発環境のデバッガで実行してテストしている場合は、UnhandledException イベント ハンドラは呼び出されません。デバッグ用のアプリケーションのビルドの詳細については、「/debug (Visual Basic)」を参照してください。

処理手順

My.Application.UnhandledException イベントに関連するタスクの例を次の表に示します。

目的

参照項目

Visual Basic アプリケーション モデルによって提供されるイベントを使用してコードを実行する

方法 : アプリケーションの起動時または終了時にコードを実行する

未処理の例外のログを記録する

方法 : 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 サイト

不可

アクセス許可

次のアクセス許可が必要です。

アクセス許可

説明

SecurityPermission

このイベントのイベント ハンドラを追加できるかどうかを制御します。関連する列挙値 : SecurityPermissionFlag.ControlAppDomain

詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。

参照

概念

Visual Basic アプリケーション モデルの概要

参照

My.Application オブジェクト

Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs

変更履歴

日付

履歴

理由

2008 年 7 月

「解説」の UnhandledException イベント ハンドラの設定方法に関する情報を変更

コンテンツ バグ修正