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

답글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.