C#のカスタム例外とは?ユーザー定義例外の作成方法を実例で解説
他のプログラミング言語と同様に、C#でも独自の例外クラス(ユーザー定義例外)を簡単に作成できます。ユーザー定義例外クラスは、標準ライブラリの Exception クラスを継承して定義します。このように開発者が独自に定義した例外のことをカスタム例外と呼びます。
カスタム例外が必要な理由
.NETには数多くの組み込み例外(NullReferenceException や ArgumentException など)が用意されていますが、アプリケーション固有のエラー状態を表現したい場合には、カスタム例外を作成するのが適切です。たとえば「温度がゼロであること」をエラーとして扱いたい場合など、ビジネスロジックに即した意味のある例外を定義することで、コードの可読性と保守性が向上します。
カスタム例外の実装例
以下の例では、組み込み例外ではなく、独自に定義したカスタム例外 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);
}
}
}実行結果
上記のコードを実行すると、次のような出力が得られます。
TempIsZeroException: Zero Temperature found
ポイントまとめ
- カスタム例外クラスは
Exceptionクラス(またはその派生クラス)を継承して作成する - コンストラクタで
base(message)を呼び出すことで、エラーメッセージを基底クラスに渡せる throwステートメントでカスタム例外をスローし、try-catchブロックで捕捉する
このように、C#のカスタム例外を使えば、アプリケーション固有のエラー状況を明確に表現でき、例外処理のコードもより直感的になります。
-
C言語のトークンとは?6つの種類とサンプルコードでわかりやすく解説
トークンとはトークン(token)とは、コンパイラにとって意味を持つ、プログラムを構成する最小単位のことです。コンパイラはソースコードをこの最小単位へと分割し、生成されたトークンを基にコンパイルの各段階へと処理を進めていきます。トークンの種類C言語のトークンは、主に以下の6種類に分類されます。キーワード(予約語):int、return など、言語仕様によって意味が定められた語識別子:変数名や関数名など、開発者が自由に命名できる名前定数:10、3.14 など、プログラム中で値が変わらない固定値文字列:ダブルクォート( )で囲まれた文字の並び特殊記号:{ }、( )、; など、構文を区切るための記
-
C#学習の始め方|必要な前提条件と開発環境の準備ガイド
C#を学習するための前提条件 C#の学習を始めるにあたって、まず必要となるのは基本的なコンピュータに関する知識です。パソコンの基本操作やファイル管理などを問題なくこなせるレベルであれば、十分にスタートできます。 さらに、C言語やC++などのプログラミング経験があれば、C#の文法や考え方をよりスムーズに理解できるでしょう。これらの言語はC#と共通する部分が多く、学習の大きな助けになります。もちろん、プログラミング未経験からでもC#の習得は十分可能です。 ステップ1:Visual Studioをインストールする C#での開発を本格的に始めるなら、まず統合開発環境(IDE)であるVisual S