English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# 異常クラス(Exception)

ここでは、C#の内蔵例外クラスについて学びます。

C#.NETは、すべての可能性のあるエラーに対して内蔵の例外クラスを提供します。Exceptionクラスはすべての例外クラスの基底クラスです。

以下は.NETの例外クラスの階層構造です:

.NETの例外クラス

上図では、ExceptionクラスはSystemExceptionクラスとApplicationExceptionクラスの基底クラスです。SystemExceptionクラスは、プログラムの実行中に例外が発生するすべての例外の基底クラスです。ApplicationExceptionクラスは、独自のカスタム例外クラスを作成するために派生されるべきです。ビジネスルールの違反やアプリケーションに関連するエラーのためのカスタムクラスを作成できます。

以下の図は、NullReferenceExceptionがnullオブジェクトの属性にランタイムでアクセスした場合、Visual Studioデバッグモードでどのように例外を発生させるかを示しています。

NullReferenceException

内蔵例外クラス

.NETで重要な内蔵例外クラスが以下に示されています。

例外クラス説明
ArgumentExceptionメソッドに渡された非nullパラメータが無効な場合に発生します。
ArgumentNullExceptionメソッドにnullパラメータを渡した場合に発生します。
ArgumentOutOfRangeExceptionパラメータの値が有効な値範囲を超えた場合に発生します。
DivideByZeroException整数値がゼロで割られる場合に発生します。
FileNotFoundException指定された位置に物理ファイルが存在しない場合に発生します。
FormatException値の形式が変換メソッド(例えばParse)から文字列に変換するのに適していない場合に発生します。
IndexOutOfRangeException配列のインデックスが配列や集合の下限または上限を超えた場合に発生します。
InvalidOperationExceptionオブジェクトの現在の状態でメソッド呼び出しが無効な場合に発生します。
KeyNotFoundException指定されたキーが集合のメンバーにアクセスするために存在しない場合に発生します。
NotSupportedExceptionメソッドや操作がサポートされていない場合に発生します。
NullReferenceExceptionプログラムが空のオブジェクトメンバーにアクセスしたときに発生します。
OverflowException算術、強制変換、または変換操作でオーバーフローが発生したときに発生します。
OutOfMemoryExceptionプログラムがコードを実行するために十分なメモリがない場合に発生します。
StackOverflowExceptionメモリ内のスタックオーバーフローが発生したときに発生します。
TimeoutException操作に割り当てられた時間間隔が切れました。

例外が発生した場合、アプリケーションコードまたはデフォルトのハンドラが例外を処理します。次のセクションで例外の処理方法について学びます。