例外を定数にすると便利かも…でも、スタックトレースは大丈夫かな…と思ったので、実験。
import java.util.*;public class Hoge {
private static Exception ERR_CODE = new Exception();
public static void main(String[] args) throws Exception {
try {
throw ERR_CODE;
} catch (Exception e) {
e.printStackTrace();
}try {
throw ERR_CODE;
} catch (Exception e) {
e.printStackTrace();
}
}
}
で、結果。
使いまわしはできなくもないけど、スタックトレースの内容が更新されない。
java.lang.Exception
at Hoge.(Hoge.java:5)
java.lang.Exception
at Hoge.(Hoge.java:5)
やっぱり、例外はいちいち新しく作るのがよいよう。
ので、定数っぽく使うなら、以下のようなメソッドを定義するのがよいかも。(戻り値が例外って不気味だけど)
public static void ERR001() {
throw new Exception("ERR001");
}public static Exception ERR001() {
return new Exception("ERR001");
}