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

C#でユーザー定義の例外(カスタム例外)を作成する方法

他の多くのプログラミング言語と同様に、C#でもユーザー定義の例外(カスタム例外)を簡単に作成できます。ユーザー定義の例外クラスは、標準ライブラリが提供するSystem.Exceptionクラスを継承して実装します。

組み込みの例外では表現できないアプリケーション固有のエラー状態を扱いたい場合に、独自の例外クラスを定義すると便利です。

ポイント:例外クラスの基本構造

カスタム例外クラスは、以下のようにExceptionクラスから派生させます。

public class カスタム例外名 : Exception
{
    public カスタム例外名(string message) : base(message)
    {
    }
}

コンストラクタで受け取ったメッセージをbase(message)で基底クラスに渡すことで、e.Message経由でエラー内容を取得できるようになります。

サンプルコード

以下の例では、組み込みの例外ではなく、独自に作成したTempIsZeroExceptionという例外クラスを使用しています。温度が0度の場合に例外をスローし、呼び出し元でそれをキャッチする流れを確認してみましょう。

using System;
namespace Demo {
    class TestTemperature {
        static void Main(string[] args) {
            Temperature temp = new Temperature();
            try {
                temp.showTemp();
            } catch(TempIsZeroException e) {
                Console.WriteLine("TempIsZeroException: {0}", e.Message);
            }
            Console.ReadKey();
        }
    }
}
// Exceptionクラスを継承したユーザー定義例外
public class TempIsZeroException : Exception {
    public TempIsZeroException(string message) : base(message) {
    }
}
public class Temperature {
    int temperature = 0;
    public void showTemp() {
        if(temperature == 0) {
            // 独自の例外をスローする
            throw (new TempIsZeroException("Zero Temperature found"));
        } else {
            Console.WriteLine("Temperature: {0}", temperature);
        }
    }
}

実行結果

このコードを実行すると、温度が0であるため例外がスローされ、catchブロック内でメッセージが出力されます。

TempIsZeroException: Zero Temperature found

まとめ

C#でユーザー定義例外を作成する手順は非常にシンプルです。

  • Exceptionクラス(またはその派生クラス)を継承した新しいクラスを定義する
  • コンストラクタでエラーメッセージを受け取り、base()に渡す
  • 必要な場面でthrowを使って例外をスローする
  • 呼び出し元ではtry-catchでキャッチして適切に処理する

この仕組みを活用すれば、アプリケーション固有のエラー状況を明確かつ柔軟に表現できるようになります。

  1. Windows 10でローカルユーザーアカウントを作成する方法【作成・変更・削除の手順を解説】

    WindowsにMicrosoftアカウントでサインインすると、設定の同期、メールの自動連携、Microsoft Storeへのアクセスなど、さまざまな便利な機能を利用できます。ただし、そのためには個人情報をMicrosoftと共有することに同意する必要があります。 一方、「Microsoftアカウントを持っていない人にPCを使わせたい」「できるだけ個人情報を共有したくない」といったケースでは、ローカルユーザーアカウントが役立ちます。管理者権限があれば、誰でも簡単にローカルアカウントを作成できます。 この記事では、Windows 10でローカルユーザーアカウントを作成する手順から、アカウント種

  2. Windows 8で新しいユーザーアカウントを作成する方法【ローカル/Microsoftアカウント対応】

    Windows 8の登場は多くのユーザーに歓迎されましたが、同時に戸惑いの声も少なくありませんでした。スタートボタンが廃止され、コントロールパネルの場所もわかりにくくなるなど、従来のWindowsとは操作方法が大きく変わったためです。そのため、新しいユーザーアカウントの作成方法といった基本操作を、改めて学び直す必要があります。 1台のパソコンを家族や複数人で共有する場合は、ユーザーごとにWindows 8のユーザーアカウントを作成することをおすすめします。アカウントを分けることで、各自が自分好みの設定や環境を持ち、管理者アカウントが許可した範囲内でファイルやアプリへアクセスできるようになります