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]

쓰레드와 익셉션 핸들링관련 도식은 다음과 같다.


Thread와 Exception

이미지 : http://book.javanb.com/java-threads-3rd/jthreads3-CHP-13-SECT-5.html




출처 : http://www.javamex.com/tutorials/exceptions/exceptions_uncaught_handler.shtml



2013/09/24 00:31 2013/09/24 00:31
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다