Thread throw Exception 핸들링하기
java thread에서 Exception을 던져 쓰레드를 생성/실행한 곳에서 익셉션을 받아 처리하기위해서는 Thread.UncaughtExceptionHandler 를 이용해야한다.
다음과 같이 말이다.
[code]
//테스트용 쓰레드 생성.
Thread t = new Thread(
new Runnable{
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println("Interrupted.");
}
System.out.println("익셉션 발생 시킴 ...");
throw new RuntimeException();
}
}
);
//Thread에 UncaughtExceptionHandler 를 설정.
t.setUncaughtExceptionHandler(
new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread th, Throwable ex) {
//쓰레드에서 던진 예외는 이곳으로 오게됨.
System.out.println("Uncaught exception: " + ex);
}
}
);
t.start();
[/code]
쓰레드와 익셉션 핸들링관련 도식은 다음과 같다.
다음과 같이 말이다.
[code]
//테스트용 쓰레드 생성.
Thread t = new Thread(
new Runnable{
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println("Interrupted.");
}
System.out.println("익셉션 발생 시킴 ...");
throw new RuntimeException();
}
}
);
//Thread에 UncaughtExceptionHandler 를 설정.
t.setUncaughtExceptionHandler(
new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread th, Throwable ex) {
//쓰레드에서 던진 예외는 이곳으로 오게됨.
System.out.println("Uncaught exception: " + ex);
}
}
);
t.start();
[/code]
쓰레드와 익셉션 핸들링관련 도식은 다음과 같다.
이미지 : http://book.javanb.com/java-threads-3rd/jthreads3-CHP-13-SECT-5.html
출처 : http://www.javamex.com/tutorials/exceptions/exceptions_uncaught_handler.shtml
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다