Javaでカスタム例外を作成する方法をわかりやすく解説
アプリケーションの要件によっては、標準の例外だけでは不十分な場合があり、より意味のある独自の例外を定義したい場面があります。Javaでは、Exceptionクラスを継承することで、自分専用の例外クラス(カスタム例外)を簡単に作成できます。
このように開発者が独自に定義した例外は「ユーザー定義例外」と呼ばれ、一般的にカスタム例外(Custom Exception)という名称でも知られています。
カスタム例外を作成する手順
- CustomExceptionクラスはカスタム例外クラスであり、Exceptionクラスを継承して定義します。
- 例外メッセージを保持するためのローカル変数
messageをクラス内に用意します。 - カスタム例外オブジェクトのコンストラクタに文字列引数を渡し、その値をprivateなString型変数
messageに格納します。 toString()メソッドをオーバーライドし、例外メッセージを見やすい形式で出力できるようにします。- mainメソッド内のtry-catchブロックでCustomExceptionをスローし、例外生成時にメッセージがどのように渡されるかを確認します。catchブロック内では受け取ったメッセージを出力します。
サンプルコード
class CustomException extends Exception {
String message;
CustomException(String str) {
message = str;
}
public String toString() {
return ("Custom Exception Occurred : " + message);
}
}
public class MainException {
public static void main(String args[]) {
try {
throw new CustomException("This is a custom message");
} catch(CustomException e) {
System.out.println(e);
}
}
}実行結果
Custom Exception Occurred : This is a custom message
コードのポイント解説
1. Exceptionクラスの継承
extends Exception とすることで、CustomExceptionはチェックド例外(検査例外)として扱われます。実行時のみ発生させる例外にしたい場合は、代わりに RuntimeException を継承します。
2. コンストラクタでメッセージを受け取る
コンストラクタ経由でエラー内容を表す文字列を受け取ることで、例外発生時に具体的な情報を呼び出し元へ伝えられます。より実践的には、親クラスの super(str) を呼び出す書き方も推奨されます。
3. toString()のオーバーライド
System.out.println(e) のように例外オブジェクトを直接出力すると、自動的に toString() が呼び出されます。ここをオーバーライドすることで、独自の読みやすいメッセージ形式を提供できます。
カスタム例外を使うメリット
- エラーの種類を明確に区別でき、原因の特定が容易になる
- 業務ロジック固有のエラー状況を直感的に表現できる
- catch句を分けることで、例外ごとに適切な処理を実装できる
このように、カスタム例外を活用することで、エラーハンドリングの可読性と保守性を大幅に向上させることができます。
-
JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説
JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー
-
Javaでログインフォームを作成する方法!Swingを使った実装例とサンプルコード
JavaではSwingというGUIツールキットを利用することで、デスクトップアプリケーション向けのログインフォームを簡単に開発できます。この記事では、ユーザー名(User Name)とパスワード(Password)の2つのラベル、認証情報を入力するための2つのテキストフィールド、そしてSUBMIT(送信)ボタンを1つ備えたフォームを作成します。正しい認証情報が入力されると、フォーム上に「Hello admin」というメッセージが表示されます。 使用する主なコンポーネント JLabel:ラベルの表示に使用します。 JTextField:ユーザー名の入力欄です。 JPasswordField: