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から派生しないオブジェクトのスローとキャッチをサポートしているわけではないことに注意してください。
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET