例外処理

例外処理

プログラムがある処理を実行している途中で、なんらかの異常が発生した場合に、現在の処理を中断(中止)して、別の処理を行うこと。

try~catch構文で行います。

例)

try

{

int a = int.Parse(Console.Read());

}

catch(FormatException)

{

Console.WriteLine("おわり");

}

Console.WriteLine("値は"+ a + "です。");

上記のプログラムは数値が入力された場合はcatchの処理は行わず、値を表示するWriteLineの処理に移行します。

tryで囲まれたint aに数値が入力されなかった場合(文字列等が入力された場合)、Catchの中の処理を返します(※この場合、"おわり"がコンソール上に表示されプログラムは終了します)。

その際、catch後の値を表示するWriteLineは処理されません。

catchの中のFormatExceptionはExeptionだけでも例外処理は通りますが、

いわゆる汎化と呼ばれるもので、各例外を全て例外処理としてみなしてしまいます。

よってExeptionを指定する特化(FormatExeption,DivideByZeroException等)の方式でcatch内を記述する必要があります。