C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の例外処理とは?try・catch・finally・throwの基本をサンプルコードで解説

例外(Exception)とは、プログラムの実行中に発生する問題やエラーのことを指します。C#では、trycatchfinallythrowという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を組み合わせることで、予期しないエラーが発生してもプログラムが異常終了するのを防ぎ、安定して動作するアプリケーションを作ることができます。

  1. 3Dプリントとは?仕組み・歴史・使い方・活用例を徹底解説

    3Dプリントの基本3Dプリント(3Dプリンティング)とは、デジタルデータをもとに立体的な実物を作り出す製造技術です。「積層造形(アディティブ・マニュファクチャリング)」とも呼ばれ、材料を削り出すのではなく、積み重ねて造形する点が大きな特徴です。3Dプリントでは、まずCADソフトと呼ばれるモデリングツールで3Dデータを作成し、それを3Dプリンターで出力します。プリンターが材料を薄い層状に積み重ねることで、完成品が形になっていきます。企業や研究者、医療関係者、趣味で楽しむ個人ユーザーまで、幅広い分野で活用されている技術です。この記事では、3Dプリントの歴史、仕組み、具体的な使い方、そして今後の展望

  2. C++の例外処理入門!try・catch・throwの基本と標準例外クラス一覧

    C++における例外処理(Exception Handling)とは、プログラムの実行時に発生するエラー(ランタイムエラー)を適切に扱うための仕組みです。例外とは、実行時に送出(スロー)されるイベントのことで、C++ではすべての標準例外が std::exception クラスから派生しています。もし例外を捕捉しなかった場合、例外メッセージが出力され、プログラムは強制終了してしまいます。 C++標準では、例外関連のクラスが <exception> ヘッダに定義されており、プログラムの中で自由に利用できます。親子関係によるクラス階層は次のようになっています。 C++の主な標準例外クラス