Javaで独自例外クラスを自作する方法

提供: Java入門
2015年9月19日 (土) 14:06時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「Javaでは例外クラスがいくつも用意されています。ライブラリ、アプリケーションを作る過程で、独自の例外クラスが欲しくな...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

Javaでは例外クラスがいくつも用意されています。ライブラリ、アプリケーションを作る過程で、独自の例外クラスが欲しくなることもあります。例外クラスは誰でも作ることができます。例外クラスを自作する場合には、例外クラスを継承して作ります。ここでは、独自の例外クラスの自作について、サンプルコードを交えて紹介します。

読み方

例外
れいがい
Exception
えくせぷしょん

概要

簡単な独自例外クラスの例です。この例では、Exceptionクラスを継承しています。

public class MyException extends Exception
{
        public MyException() { }
        public MyException(String message) { super(message); }
        public MyException(Throwable cause) { super(cause); }
        public MyException(String message, Throwable cause) {
                super(message, cause);
        }
}

UseMyException

ソースコード MyException.java

これは、独自例外クラスの実装です。

/*
 * MyException.java
 * Copyright (C) 2015 kaoru <kaoru@localhost>
 */
public class MyException extends Exception
{
        public MyException() { }
        public MyException(String message) { super(message); }
        public MyException(Throwable cause) { super(cause); }
        public MyException(String message, Throwable cause) {
                super(message, cause);
        }
}

ソースコード UseMyException.java

このコードは、独自例外クラスを利用したコードです。Javaの例外チェインの例です。

/*
 * UseMyException.java
 * Copyright (C) 2015 kaoru <kaoru@localhost>
 */
public class UseMyException
{
        public static void main(String[] args) {
                try {
                        try {
                                throw new MyException("One");
                        } catch (MyException e) {
                                throw new MyException("Two", e);
                        }
                } catch (MyException e) {
                        e.printStackTrace();
                }
        }
 
}

コンパイル

javac UseMyException.java

実行例

例外チェインも含めて、うまく独自例外クラスの動作が確認できました。

$ java UseMyException
MyException: Two
        at UseMyException.main(UseMyException.java:12)
Caused by: MyException: One
        at UseMyException.main(UseMyException.java:10)

関連項目





スポンサーリンク