既存のExcepitonクラスでユーザープログラムで使えそうなExceptionクラスをピックアップしてみました。
使えそうな一覧
- ArgumentException
- メソッドの引数が無効の値のようです。
- ArgumentOutOfRangeException
- メソッドの引数が教養範囲外の値のようです。
- FileNotFoundException
- 存在しないファイルにアクセスしたようです。
- DirectoryNotFoundException
- ディレクトリが存在しないようです
- IndexOutOfRangeException
- 配列又はコレクションで、範囲外のインデックスの要素にアクセスしたようです。
- InvalidOperationException
- 許可されない操作をしたようです。(読み取り専用ファイルに書き込み、既に閉じられたハンドルを閉じる)
- OverflowException
- オーバーフローしたようです。
- RankException
- 配列の次元数が誤っているとおもわれます。
- OutOfMemoryException
- メモリが不足しているようです。
- DivideByZeroException
- 整数値をゼロで除算したようです
- TimeoutException
- タイムアウトが発生したようです
- FormatException
- 不正な文字列(書式など)
- KeyNotFoundException
- コレクションにキーが存在しないようです
- NotImplementedException
- 要求されたメソッドは未実装なようです
ユーザーが定義するExeption
既存のExcepitonで満足できない場合、System.Exceptionクラスを継承してユーザー定義のExcepitonクラスを作りましょう。
(多分こちらが普通)
(多分こちらが普通)
public class MyException : Exception
{
public MyException(String message) : base (message)
{}
public MyException(String message, Exception inner) : base(message,inner) {}
}
MyException(String message, Exception inner)はメソッド内で発生したシステム例外などをcatchしMyExceptionに変換して再度throwする場合catchしたExeptionオブジェクトを引数にすることで、例外の発生原因を特定しやすくします。
コメント