C#の例外処理とは?try・catch・finally・throwの基本をサンプルコードで解説
例外(Exception)とは、プログラムの実行中に発生する問題やエラーのことを指します。C#では、try、catch、finally、throwという4つのキーワードを使って、こうした例外を適切に処理することができます。
例外処理で使う4つのキーワード
try
tryブロックは、例外が発生する可能性のあるコードを囲み、その範囲に対して例外処理を有効にします。監視対象となる処理は、このブロック内に記述します。
catch
catchキーワードは、実際に発生した例外を捕捉(キャッチ)する役割を担います。tryブロック内で例外がスローされると、対応するcatchブロックが実行されます。
finally
finallyブロックには、例外がスローされたかどうかにかかわらず、必ず実行したい一連の処理を記述します。ファイルやデータベース接続などのリソース解放といった後処理に特に適しています。
throw
throwキーワードは、プログラムの中で問題が検出されたときに、例外を明示的にスローするために使用します。
C#での例外処理のサンプルコード
以下は、C#プログラムで発生したエラー(ゼロ除算)を処理する具体例です。
using System;
namespace MyErrorHandlingApplication {
class DivNumbers {
int result;
DivNumbers() {
result = 0;
}
public void myDivision(int num1, int num2) {
try {
result = num1 / num2;
} catch (DivideByZeroException e) {
Console.WriteLine("Exception Caught: {0}", e);
} finally {
Console.WriteLine("Result: {0}", result);
}
}
static void Main(string[] args) {
DivNumbers d = new DivNumbers();
d.myDivision(5, 0);
Console.ReadKey();
}
}
}
コードの動作解説
このプログラムでは、myDivision(5, 0)として5を0で割ろうとしているため、DivideByZeroException(ゼロ除算例外)が発生します。すると、tryブロック内の処理は中断され、catchブロックがこの例外を捕捉してエラーメッセージを表示します。最後に、例外の有無にかかわらずfinallyブロックが実行され、結果が出力されます。
実行結果は以下のようになります。
Exception Caught: System.DivideByZeroException: Attempted to divide by zero. Result: 0
このように、try-catch-finallyを組み合わせることで、予期しないエラーが発生してもプログラムが異常終了するのを防ぎ、安定して動作するアプリケーションを作ることができます。
-
3Dプリントとは?仕組み・歴史・使い方・活用例を徹底解説
3Dプリントの基本3Dプリント(3Dプリンティング)とは、デジタルデータをもとに立体的な実物を作り出す製造技術です。「積層造形(アディティブ・マニュファクチャリング)」とも呼ばれ、材料を削り出すのではなく、積み重ねて造形する点が大きな特徴です。3Dプリントでは、まずCADソフトと呼ばれるモデリングツールで3Dデータを作成し、それを3Dプリンターで出力します。プリンターが材料を薄い層状に積み重ねることで、完成品が形になっていきます。企業や研究者、医療関係者、趣味で楽しむ個人ユーザーまで、幅広い分野で活用されている技術です。この記事では、3Dプリントの歴史、仕組み、具体的な使い方、そして今後の展望
-
C++の例外処理入門!try・catch・throwの基本と標準例外クラス一覧
C++における例外処理(Exception Handling)とは、プログラムの実行時に発生するエラー(ランタイムエラー)を適切に扱うための仕組みです。例外とは、実行時に送出(スロー)されるイベントのことで、C++ではすべての標準例外が std::exception クラスから派生しています。もし例外を捕捉しなかった場合、例外メッセージが出力され、プログラムは強制終了してしまいます。 C++標準では、例外関連のクラスが <exception> ヘッダに定義されており、プログラムの中で自由に利用できます。親子関係によるクラス階層は次のようになっています。 C++の主な標準例外クラス