C#のユーザー定義例外とは?カスタム例外の作成方法を実例で解説
ユーザー定義例外(カスタム例外)とは
他のプログラミング言語と同様に、C#でも開発者が独自の例外を簡単に作成できます。このように自分で定義した例外をユーザー定義例外(カスタム例外)と呼びます。ユーザー定義の例外クラスは、標準ライブラリが提供するSystem.Exceptionクラスを継承して作成するのが基本です。
組み込みの例外だけでは表現しきれない、アプリケーション固有のエラー状態を明確に扱いたい場合に、ユーザー定義例外は非常に有効です。
サンプルコード:TempIsZeroExceptionの作成
以下の例では、組み込みの例外ではなく、温度がゼロの場合にスローされるカスタム例外「TempIsZeroException」を作成しています。実際にコードを実行して、C#におけるユーザー定義例外の作成方法を確認してみましょう。
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();
}
}
}
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);
}
}
}出力結果
TempIsZeroException: Zero Temperature found
コードのポイント
- Exceptionクラスの継承:
TempIsZeroExceptionクラスはExceptionクラスを継承することで、例外オブジェクトとして扱えるようになります。 - コンストラクタでのbase呼び出し:
: base(message)により、渡されたエラーメッセージを基底クラスのMessageプロパティに引き継いでいます。 - throwによるスロー: 温度が0の場合、
throwステートメントを使ってカスタム例外をスローします。 - try-catchでの捕捉:
Mainメソッド内のcatchブロックでスローされた例外を受け取り、例外メッセージをコンソールに出力しています。
-
C#の動的配列とは?ArrayListを使った動的な配列の作成方法を解説
動的配列とは、実行時にサイズを自由に拡張できる配列のことです。通常の静的配列は宣言時にサイズが固定されるため、後から要素数を変更することはできません。その点、動的配列は柔軟性が高く、多くの場面で有利になります。C#で配列を動的に作成するには、ArrayListコレクションを使用します。ArrayListは、個別にインデックスアクセスが可能なオブジェクトの順序付きコレクションを表します。動的なメモリ割り当てに対応しており、リストへの要素の追加(Add)、検索、並べ替え(Sort)なども簡単に行えます。C#で動的配列を作成するサンプルコード以下は、C#でArrayListを使って動的に配列を作成す
-
C#のカスタム例外とは?ユーザー定義例外の作成方法を実例で解説
他のプログラミング言語と同様に、C#でも独自の例外クラス(ユーザー定義例外)を簡単に作成できます。ユーザー定義例外クラスは、標準ライブラリの Exception クラスを継承して定義します。このように開発者が独自に定義した例外のことをカスタム例外と呼びます。カスタム例外が必要な理由.NETには数多くの組み込み例外(NullReferenceException や ArgumentException など)が用意されていますが、アプリケーション固有のエラー状態を表現したい場合には、カスタム例外を作成するのが適切です。たとえば「温度がゼロであること」をエラーとして扱いたい場合など、ビジネスロジック