カテゴリー
Cシャープ

例外処理について知ろう

この章では例外処理について説明します。
例外とは、プログラムの実行過程で発生するエラーのことを言います。
0による除算や配列の添え字の数を超えて実行しようとするとエラーが起こります。
例外が起こったときに、予想外の動きをしないためには例外処理を行う必要があります。
例外処理をすることで プログラムが途中で中断されることなく続けることができるメリットがあります。
では例をみてみましょう。11 C#には例外を処理するためのクラスが備わっているのですが、それがExceptionクラスです。
このクラスを基本として、様々な例外処理が行われます。
例えばこの例のDivideByZeroExceptionクラスは Exception クラスの子クラスですが、0で除算した際の例外処理を行います。1 この例の処理の場合はcatchの引数に1と記述し、次にcatchのブロック内に1という形式で記述します。
Messageはプロパティですが、ここに例外の文字列が格納されています。
結果は以下の通りです。1 例外クラスはDivideByZeroExceptionだけではないので、他の例外も紹介します。111 この例では配列の要素数が3なのに4つ入れようとしているので、例外が発生します。
この例外を扱うクラスはIndexOutOfRangeExceptionです。
配列の要素数を超えてデータを入れようとすると、この例外クラスが実行されます。1 結果は以下の通りです。1 今まで2つの例外1 を見てきましたが、catchは1つだけしか書くことができないわけではなく、何個でも書くことが出来ます。1 以下のように複数のcatch文を書く事が出来ます。111 では次の説明に移ります。
今までは2つの例外1 を別個に書いていましたが、
これらに代わって
「Exception」を使うことで
どの例外でも補足することが
可能になります。
Exceptionクラスは今まで説明してきた例外クラスの親クラスに当たります。
では例をみてみましょう。11 結果は以下の通りです。1 次は例外をプログラマが明示的に投げる方法について説明します。
明示的に例外を投げるにはtryのブロック内に1という構文で書きます。1 では例をみてみましょう。111 この例は変数がnullであればthrowで例外をcatchに送っています。
throw 文は例外が起こる箇所に挿入します。
ArgumentNullExceptionクラスは値がnullである可能性があるプログラムに使用されます。
結果は以下の通りです。1