多くのソースコードでは、例外を発生させると同時にthrowしています。
しかし、例外クラスもクラスの一つであり、newするとオブジェクトが生成されますので、先に例外クラスのオブジェクトを生成し、オブジェクトとしてやりとりした後、後でthrowすることが可能です。
独自例外クラスを使用している場合は、このテクニックを用いると便利なことがあるかもしれません。
以下、サンプルコードです。
【サンプルコード】
・ExceptionTest.java
import java.io.FileNotFoundException;
import java.io.IOException;
public class ExceptionTest {
public static void main(String[] args) {
Exception ex = null;
ex = exceptionMaker();
try {
throw ex;
} catch (FileNotFoundException e1) {
System.out.println("FileNotFoundException");
} catch (IOException e2) {
System.out.println("IOException");
} catch (Exception e3) {
System.out.println("Exception");
}
}
static Exception exceptionMaker() {
Exception ex = null;
ex = new FileNotFoundException();
ex = new IOException();
return ex;
}
}
【実行結果】
IOException