この手の機能は一般的なものなんですかねぇ。java 1.5からの機能みたいですね。
しかしこのメソッドはセッターであるため、1つしか設定できないんです。というわけで、複数でハンドリングする場合は、注意しないと上書きされちゃいますね。
サンプルコードは以下のとおり。
import java.lang.Thread.UncaughtExceptionHandler;
class TestApp {
public static void main(String[] args) {
//スタティックメソッドのほうは、どこで例外が発生しても情報が取得できる!
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
System.out.println(e.getMessage());
}
});
new TestApp().exception();
}
public void exception(){
throw new RuntimeException("テストだよーん");
}
}
class TestApp {
public static void main(String[] args) {
//スタティックメソッドのほうは、どこで例外が発生しても情報が取得できる!
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
System.out.println(e.getMessage());
}
});
new TestApp().exception();
}
public void exception(){
throw new RuntimeException("テストだよーん");
}
}
0 件のコメント:
コメントを投稿