エラーから安全に回復する「例外処理(try-catch-finally)」とは?
C#の 例外処理 は、実行中にエラー(例外)が発生しても、プログラムを強制終了させずに安全に処理を続けるための仕組みです。
try
・catch
・finally
ブロックを使って記述します。
基本構文
try {
// 例外が発生する可能性のある処理
}
catch (例外の型 変数名) {
// エラーが起きた時の処理
}
finally {
// 最後に必ず実行される処理(省略可)
}
例:0で割ったときの処理
try {
int a = 10;
int b = 0;
int result = a / b; // ここで例外が発生
}
catch (DivideByZeroException ex) {
Console.WriteLine("0で割ることはできません!");
Console.WriteLine("エラー内容:" + ex.Message);
}
finally {
Console.WriteLine("処理を終了します。");
}
catchのバリエーション
catch (Exception ex)
:すべての例外を捕捉(汎用的)
catch
だけでも記述可能(例外情報を使わない)
- 複数のcatchブロックを使い分け可能
try {
// 何かの処理
}
catch (FormatException ex) {
Console.WriteLine("フォーマットエラー");
}
catch (Exception ex) {
Console.WriteLine("その他のエラー");
}
finallyの役割
finallyブロックは、例外が発生してもしなくても必ず実行されます。
ファイルのクローズや接続の切断など、後始末に使われます。
throw文で例外を発生させる
throw new Exception("強制的にエラーを発生");
例:独自のチェックとthrow
int age = -5;
if (age < 0) {
throw new ArgumentException("年齢は0以上である必要があります");
}
例外処理のメリット
- プログラムの異常終了を防げる
- エラー内容を詳しく記録・通知できる
- 安全に後処理を実行できる
まとめ
例外処理(try-catch-finally)は、実行時に発生する予期せぬエラーに備えて、安全な動作を保証する仕組みです。
try
で危険な処理を囲み、catch
でエラーを処理し、finally
で後始末を行うことで、堅牢で安定したプログラムを作ることができます。