「C#.NET」「throw」ステートメントを使ったエラー処理の基本

2024年11月9日土曜日

キーワード(構文) 基本 例外処理

t f B! P L

自己紹介

こんにちは、私は司法神である「throw」ステートメントです。例外という名の「問題」を見つけたとき、私はそれを上位の方々に知らせるのが得意です。平和を愛する私ですが、時には厳しい態度も必要です。

基本機能

「throw」ステートメントの主な役割は、プログラム内で発生した問題を知らせることです。例外をスローすることで、問題の存在を他の部分に伝えることができ、適切に対処されることを期待しています。これにより、プログラム全体の信頼性が向上します。

問題の検知

私は、通常プログラムの流れが滞った場面で活躍します。何か不具合や想定外の事態が生じた場合、その状況を明確にするために、私が呼び出されます。これにより、問題を明示し、他の部分で対処することが可能になるのです。

責任の伝達

「throw」は単に問題をスローするだけではなく、その問題を適切な場所まで届けるという役割も担っています。プログラムの高位で適切な処理が行われることで、全体の健全性を保ちます。

例外の種類

.NETには多くの種類の例外が存在します。「throw」は、これら多様な例外の中から適切なものを選んで伝える役目を担います。状況に応じた正しい例外を選択することで、問題の正確な内容を知る手がかりを提供します。

活用の注意点

注意すべきポイントは、例外を乱用しないことです。例外はあくまでも予期しない事態への対応策であり、プログラムの制御フローに多用すると却ってコードの可読性が低下してしまいます。必要な場面で、適切に利用するように心がけましょう。

サンプルコード

C#
class Program
{
    // メイン関数
    public static void Main()
    {
        try
        {
            // 例外をスローする関数を呼び出す
            CheckNumber(0);
        }
        catch (Exception ex)
        {
            // 例外がキャッチされたらエラーメッセージを表示
            Console.WriteLine("エラーが発生しました: " + ex.Message);
        }
    }

    // 数値をチェックして条件に合わなければ例外をスローする関数
    public static void CheckNumber(int number)
    {
        if (number <= 0)
        {
            // 条件に合わない場合は例外をスロー
            throw new ArgumentException("数値は0より大きい必要があります。");
        }
        else
        {
            // 条件に合う場合は正常処理
            Console.WriteLine("数値は正しいです: " + number);
        }
    }
}

解説

サンプルコードでは、"CheckNumber"という関数で条件を満たさない数値を渡すと例外をスローし、"Main"関数の中でtry-catchを用いてその例外をキャッチしています。これにより、例外が発生してもプログラムが停止することなく、適切な処理ができるようになっています。「throw」を使うことで、エラーの原因となる状況を的確に拾い上げ、静かに警告を発することが可能です。

このブログを検索

QooQ