C#でユーザー定義例外を作成する方法|サンプルコード付きで解説
例外(エクセプション)とは、プログラムの実行中に発生する問題のことです。C#における例外は、ゼロ除算を試みた場合など、プログラムの実行中に生じる例外的な状況に対する応答として扱われます。
C#では、標準ライブラリが提供する例外だけでなく、開発者自身が独自の例外クラスを定義することもできます。これを「ユーザー定義例外」と呼びます。ユーザー定義の例外クラスは、Exceptionクラスから派生させて作成するのが基本です。
以下に、具体的な実装例を示します。
サンプルコード
using System;
namespace UserDefinedException {
class TestFitness {
static void Main(string[] args) {
Fitness f = new Fitness();
try {
f.showResult();
} catch(FitnessTestFailedException e) {
Console.WriteLine("User defined exception: {0}", e.Message);
}
Console.ReadKey();
}
}
}
public class FitnessTestFailedException: Exception {
public FitnessTestFailedException(string message): base(message) {
}
}
public class Fitness {
int points = 0;
public void showResult() {
if(points < 110) {
throw (new FitnessTestFailedException("Player failed the fitness test!"));
} else {
Console.WriteLine("Player passed the fitness test!");
}
}
}コードのポイント
上記のコードでは、次のようにしてユーザー定義例外を作成しています。
public class FitnessTestFailedException: Exception {
public FitnessTestFailedException(string message): base(message) {
}
}- Exceptionクラスの継承:
FitnessTestFailedExceptionクラスはExceptionクラスを継承することで、独自の例外として機能します。 - コンストラクタでのメッセージ受け渡し:
base(message)を呼び出すことで、エラーメッセージを基底クラスであるExceptionに渡しています。 - 例外のスロー:
showResult()メソッド内で、フィットネステストの点数が110未満の場合にthrow文によってカスタム例外をスローします。 - 例外の捕捉: 呼び出し元の
Mainメソッドでは、try-catchブロックを使ってこの例外を捕捉し、e.Messageプロパティからエラーメッセージを出力しています。
このように、業務上の特定のエラー状況(例:テスト不合格、不正な入力値など)を表現したい場合に、ユーザー定義例外を活用すると、コードの可読性と保守性が大きく向上します。
-
jQueryのclosest()メソッドの使い方を実例付きで解説
jQueryのclosest()メソッドは、選択された要素から出発してDOMツリーを上方向へ辿り、指定した条件に最初に一致する祖先要素を返すためのトラバース系メソッドです。親・子・兄弟といった関係性を利用して要素を操作したい場合に非常に便利です。 構文 closest()メソッドの基本構文は以下のとおりです。 $(selector).closest(filter) パラメータの説明 filter:どの祖先要素を対象にするかを指定するセレクター式です。要素名、クラス名、IDなどを指定できます。 条件に一致する祖先が見つかった時点で探索を終了し、その要素のみを返します。 一致する祖先が存在しない
-
Pryで例外をスマートに扱う方法|バックトレース表示からカスタマイズまで
Rails開発者なら、Railsコンソールを頻繁に使う方も多いのではないでしょうか。そして今や、RailsコンソールといえばPryが定番。素のIRBと比べると、その使い勝手は段違いです。 実はPryには、例外を扱う際に非常に便利な機能が標準で組み込まれています。この記事では、その中でも特に役立つ3つの機能を紹介します。 直近の例外の完全なバックトレースを表示する Pry(IRBでも同様)で例外が発生すると、通常は短縮されたバックトレースが表示されます。多くの場合それで十分ですが、詳細を確認したい場面もありますよね。 そんなときは wtf -v コマンドを使いましょう。直近の例外の完全な