Javaの独自の例外クラスを作成するサンプルです。
目次
サンプル | 独自の例外クラス |
独自の例外クラスのサンプル | |
独自の例外クラスを使用したサンプル |
独自の例外クラス
- 作成するアプリに合わせた独自の例外クラスを作成することで、例外ハンドリングを容易にし保守性と可読性を上げることができます。
- 独自の例外クラスを作成する場合、既存の例外クラスを継承する必要があります。
→一般的にはExceptionクラスを継承します。 - 以下は、OracleのJava8 API仕様のExceptionクラスのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Exception.html
独自の例外クラスのサンプル
package test1;
public class MyTest1Exception extends Exception{
//warningを回避するための宣言
private static final long serialVersionUID = 1L;
// コンストラクタ
MyTest1Exception(String msg){
super(msg);
}
}
3行目は、Exceptionクラスを継承しています。
8-10行目は、コンストラクタです。
9行目のsuper(msg)は、継承元のExceptionクラスのコンストラクタを指します。
具体的には以下です。
public Exception(String message) |
→getMessageメソッドで引数のmessageを取得できるようになります。
以下はExceptionクラスのコンストラクタ「public Exception(String message)」のリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Exception.html#Exception-java.lang.String-
独自の例外クラスを使用したサンプル
上記の独自の例外クラス(MyTest1Exception クラス)を使用したサンプルです。
package test1;
public class Test1 {
public static void main(String[] args) {
Sample s = new Sample();
try {
s.runSample();
// 独自の例外をキャッチ
} catch (MyTest1Exception e) {
System.out.println(e.getMessage());//独自の例外です
System.out.println(e);// test1.MyTest1Exception: 独自の例外です
}
}
}
class Sample {
void runSample() throws MyTest1Exception {
int i = 5;
if (i == 5) {
// throwで作成した例外を投げる
throw new MyTest1Exception("独自の例外です");
}
}
}
8行目は、18行目のメソッドを呼び出します。
24行目は、独自の例外をthrowしています。
12行目で独自の例外にセットした文字列を表示しています。
関連の記事