.NET Visual C#言語入門 > 例外と例外処理
のぶ亭『プログラミングの相談窓口』 … 様々なプログラミング問題を個別対応致します |
例外と例外処理
C# 言語の例外処理機能を使用すると、プログラムの実行中に発生する不測の状況や例外的な状況に対処できます。
例外処理では、try、catch、および finally の各キーワードを使用して、成功しない可能性のあるアクションの試行、エラーの処理、およびリソースの後処理を行います。例外は、共通言語ランタイム (CLR: Common Language Runtime)、サードパーティ ライブラリ、または throw キーワードを使用するアプリケーション コードによって生成できます。
次の例では、メソッドでゼロ除算をテストしてエラーをキャッチします。例外処理がなければ、このプログラムは、"DivideByZeroException はハンドルされませんでした。" エラーによって終了します。
int SafeDivision(int x, int y) { try { return (x / y); } catch (System.DivideByZeroException dbz) { System.Console.WriteLine("Division by zero attempted!"); return 0; } }
例外の概要
例外には、次のような特徴があります。
- ゼロ除算警告や低メモリ警告などの例外的な状況がアプリケーションで発生すると、例外が生成されます。
- 例外が発生したときに、関連する例外ハンドラが存在する場合、制御フローは直ちにそのハンドラにジャンプします。
- 特定の例外用の例外ハンドラがない場合、プログラムはエラー メッセージを表示して実行を停止します。
- 例外を発生させる可能性のあるアクションは、try キーワードを使用して実行します。
- 例外ハンドラは、例外が発生したときに実行されるコード ブロックです。C# では、catch キーワードを使用して例外ハンドラを定義します。
- 例外は、throw キーワードを使用してプログラム側で意図的に生成できます。
- 例外オブジェクトには、呼び出し履歴の状態やエラーのテキスト説明など、エラーに関する詳細情報が含まれています。
- 例外がスローされた場合でも finally ブロックのコードは実行されるため、プログラム側でリソースを解放できます。
「例外処理ステートメント」を参照