技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

java:例外を先に生成して後でthrowする

多くのソースコードでは、例外を発生させると同時に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