ITメモ
C#




【C#】例外処理をする方法

【C#】
例外処理をする方法










例外処理とは


「例外処理」は、プログラム実行中に、動作における予期せぬエラーなどが発生した場合の処理のことを言います。
例外を検知した時点で、処理をするようにプログラムをあらかじめ記述しておくのが「例外処理」です。

「C#」にも、例外処理を取り扱う標準のクラスが用意されています。
エラーを検知するのに使用されるクラスで、
エラーが発生すると、対応するクラスは、イベントが発生するので、
そのイベントを検知するプログラムを検知するプログラムを記述します。


Back



例外処理をする方法


エラー(例外)を意図的に発生させるクラスも用意されているので、
活用しながら、「例外処理」プログラムを記述することができます。


例外処理をする書式


例外(エラー)を意図的に発生させる書式

throw new 例外クラス名(コンストラクタの引数, コンストラクタの引数, ・・・・・);
throw new IndexOutOfRangeException();



例外処理の条件分岐書式

try{

通常の処理

}catch(例外クラス名 変数名){

通常の処理で発生した例外1の対処方法を記述

}catch(例外クラス名 変数名){

通常の処理で発生した例外2の対処方法を記述

}finally{

処理が終了したときに実行する処理

}


try{

通常の処理
//例外を発生させるスクリプト
throw new IndexOutOfRangeException();

}catch(DivideByZeroException e){

ゼロで割り算をしてしまった時のエラー(DivideByZeroException)の処理を記述。
Console.WriteLine("Error : 「0」による割り算エラーが発生!");

}catch(IndexOutOfRangeExceptin e){

配列の範囲外にアクセスしたときのエラー(IndexOutOfRangeExceptin)の処理を記述。
Console.WriteLine("Error : 配列の範囲外にアクセスしています!");

}finally{

処理が終了したときに実行する処理
Console.WriteLine("プログラムを終了します。。。。。");

}



Back



例外処理を取り扱うクラス


「C#」には、例外処理に使えるエラーを取り扱う標準クラスが用意されています。
エラーを取り扱うクラスを利用して、エラーを検知し、
エラー(例外)処理プログラムで対策をする必要があります。



例外処理クラスの種類

エラークラス説明
System
ArgumentExceptionメソッドの引数エラー。「ArgumentNullException」「ArgumentOutOfRangeException」以外の時に使用。
ArgumentNullException引数が「null」のエラー。
ArgumentOutOfRangeExceptionメソッドの引数エラー。許容範囲外の値。
ArithmeticException算術演算によるエラー。「OverflowException」「DivideByZeroException」「NotFiniteNumberException」以外の算術エラー。
OverflowException算術演算やキャストでオーバーフローが発生。
DivideByZeroException「0」で割ったときのエラー。
NotFiniteNumberException浮動小数点値が無限大でエラー。
FormatException引数の書式エラー。
IndexOutOfRangeException配列のインデックスエラー。
InvalidCastException無効なキャストエラー。
InvalidOperationException引数以外の原因でエラーが発生。
ObjectDisposedException「Dispose」済みオブジェクトの操作実行エラー。
NotImplementedExceptionメソッドが未実装。
NotSupportedException呼び出されたメソッドがサポートされていない場合、もしくは、機能がないなどのエラー。
NullReferenceException「null」オブジェクト参照を逆参照エラー。
PlatformNotSupportException特定のプラットフォームでの機能未実行。
TimeoutExceptionタイムアウトエラー。
System.Collections.Generics
KeyNotFoundExceptionコレクションに該当キーが無いエラー。
System.IO
DirectoryNotFoundExceptionディレクトリが無い。
FileNotFoundExceptionファイルが無い。
EndOfStreamExceptionストリームの末尾を超えた読み込みエラー。


Back