Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 UncaughtExceptionHandler를 사용하여 예외를 처리하는 방법은 무엇입니까?

<시간/>

UncaughtExceptionHandler 스레드 내부의 인터페이스입니다. 수업. 메인 스레드가 포착되지 않은 예외로 인해 자바 가상 머신이 종료되려고 합니다. 스레드의 UncaughtExceptionHandler 를 호출합니다. 파일에 예외를 기록하는 것과 같은 일부 오류 처리를 수행할 기회 또는 서버에 로그 업로드 죽기 전에. 처리되지 않은 모든 예외에 대해 호출될 기본 예외 처리기를 설정할 수 있습니다. 자바 5 버전에 도입되었습니다. .

이 Handler는 java.lang.Thread의 정적 메소드를 사용하여 설정할 수 있습니다. 수업.

public static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler ueh)

Thread.UncaughtExceptionHandler 인터페이스의 구현을 제공해야 합니다. 방법이 하나뿐입니다.

구문

@FunctionalInterface
public interface UncaughtExceptionHandler {
   void uncaughtException(Thread t, Throwable e);
}

예시

public class UncaughtExceptionHandlerTest {
   public static void main(String[] args) throws Exception {
      Thread.setDefaultUncaughtExceptionHandler(new MyHandler());
      throw new Exception("Test Exception");
   }
   private static final class MyHandler implements Thread.UncaughtExceptionHandler {
      @Override
      public void uncaughtException(Thread t, Throwable e) {
         System.out.println("The Exception Caught: " + e);
      }
   }
}

출력

The Exception Caught: java.lang.Exception: Test Exception