次の方法で共有


カスタム例外のサンプル

更新 : 2007 年 11 月

このソリューションでは、2 種類の高度な例外管理手法の例を示します。カスタム例外と、グローバル例外処理です。

サンプルとそのインストール手順を取得するには

  • 次のいずれかを実行します。

    • [ヘルプ] メニューの [サンプル] をクリックします。

      サンプルの情報を示す Readme が表示されます。

    • Visual Studio 2008 のサンプルの Web サイトにアクセスします。ここには、サンプルの最新版が掲載されています。

    • Visual Studio をインストールしたコンピュータで、サンプルを検索します。既定では、サンプルおよび Readme ファイルは drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid にインストールされています。Visual Studio の Express Edition については、すべてのサンプルがオンラインで提供されています。

詳細については、「サンプル ファイルの格納場所」を参照してください。

261wc9tx.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。

このサンプルを実行するには

  1. ソリューション エクスプローラで、Client プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。

  2. Ctrl + F5 キーを押します。グローバル例外ハンドラの効果を確認するためには、プログラムはデバッガの外部で実行するのが最適です。

使用例

このサンプルには、Windows フォーム クライアントとクラス ライブラリの 2 つのプロジェクトが含まれています。

クラス ライブラリ (サーバー)

このクラス ライブラリでは、Customer クラスと、アプリケーション定義のエラーを公開するためのカスタム例外クラスのセットを定義します。これらの例外クラスは、継承の階層構造によって関連付けられています。基本クラスは CRMSystemException で、このクラスは ApplicationException を継承しています。CustomerException および EmployeeException は、CRMSystemException を継承しています。さらに、CustomerException を継承した例外として、CustomerNotFoundException と CustomerNotDeletedException の 2 つがあります。各クラスは、それぞれ異なるレベルの情報および機能を公開しています。

クライアント コード

クライアント アプリケーションは、クラス ライブラリを参照しています。2 つのコマンド ボタンで、Customer クラスに対するメソッドを実行し、カスタム例外をキャッチします。コマンド ボタンはもう 1 つあり、処理されていない例外を発生させます。さらに、[Turn on Global Exception Trap] というラベルのチェック ボックスがあり、グローバル例外トラップを有効にします。これを有効にすると、既定の Windows フォーム ハンドラではなく、OnThreadException メソッドで定義されているコードが実行されます。

参照

参照

ApplicationException

ThreadException

OnThreadException

Try...Catch...Finally ステートメント (Visual Basic)

その他の技術情報

Visual Basic での構造化例外処理