次の方法で共有


例外クラスとプロパティ

Exception クラスは、例外が継承される基底クラスです。 たとえば、 InvalidCastException クラス階層は次のようになります。

Object
  Exception
    SystemException
      InvalidCastException

Exception クラスには、例外の理解を容易にするために役立つ次のプロパティがあります。

プロパティ名 説明
Data キーと値のペアで任意のデータを保持する IDictionary
HelpLink 例外の原因に関する広範な情報を提供するヘルプ ファイルへの URL (または URN) を保持できます。
InnerException このプロパティは、例外処理中に一連の例外を作成して保持するために使用できます。 これを使用して、以前にキャッチされた例外を含む新しい例外を作成できます。 元の例外は、 InnerException プロパティの 2 番目の例外によってキャプチャでき、2 番目の例外を処理するコードが追加情報を調べることができます。 たとえば、不適切な形式の引数を受け取るメソッドがあるとします。 コードは引数の読み取りを試みますが、例外がスローされます。 このメソッドは例外をキャッチし、 FormatExceptionをスローします。 例外がスローされる理由を特定する呼び出し元の機能を向上させるために、メソッドがヘルパー ルーチンによってスローされた例外をキャッチし、発生したエラーをより示す例外をスローすることが望ましい場合があります。 内部例外参照を元の例外に設定できる、より意味のある新しい例外を作成できます。 このより意味のある例外は、呼び出し元にスローされる可能性があります。 この機能を使用すると、最初にスローされた例外で終わる一連のリンクされた例外を作成できます。
Message 例外の原因に関する詳細を提供します。
Source エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。
StackTrace エラーが発生した場所を特定するために使用できるスタック トレースが含まれています。 デバッグ情報が使用可能な場合、スタック トレースにはソース ファイル名とプログラム行番号が含まれます。

Exceptionから継承するクラスのほとんどは、追加のメンバーを実装したり、追加の機能を提供したりしません。これらは単にExceptionから継承します。 したがって、例外の最も重要な情報は、例外クラス、例外名、および例外に含まれる情報の階層にあります。

Exceptionから派生したオブジェクトのみをスローしてキャッチすることをお勧めしますが、Object クラスから派生したオブジェクトは例外としてスローできます。 すべての言語が、 Exceptionから派生しないオブジェクトのスローとキャッチをサポートしているわけではないことに注意してください。

こちらも参照ください