Thread. UncaughtExceptionHandler 간단 한 실천
Exception 이상 을 던 졌 다 면 try. catch.. 처리 해 야 합 니 다. checked exception 에 속 합 니 다.
Runtime Exception 이상 을 던 졌 다 면 try. catch.. 이상 처 리 를 해 야 하 는 것 이 아 닙 니 다. 이상 이 발생 하면 JVM 에서 처리 합 니 다. unchecked exception 에 속 합 니 다.
주의: 프로그램의 건장 성 을 확보 하기 위해 RunntimeException 이상 을 던 지고 try. catch. 를 사용 하여 처리 하 는 것 을 권장 합 니 다.
이 두 가지 가장 본질 적 인 차 이 는 디자이너 가 사용자 가 이 이상 을 처리 할 수 있 고 처리 해 야 한다 고 생각 하 는 데 있다.
자바 이상 분류:
기본 클래스: Throwable
Error 와 Exception 은 Throwable 에 계승 되 었 습 니 다.
Runtime Exception 과 IOException 등 상속 Exception
그 중에서 Error 와 Runtime Exception 과 그 하위 클래스 는 unchecked exception 에 속 하고 다른 이상 은 checked exception 입 니 다.
Error 류 는 자바 운영 체제 의 내부 오류 와 자원 이 소 진 된 상황 을 설명 합 니 다. 응용 프로그램 은 이러한 유형의 대상 을 던 져 서 는 안 됩 니 다 (일반적으로 자바 가상 컴퓨터 에서 던 져 집 니 다).만약 이런 오류 가 발생 한다 면, 프로그램 을 안전하게 퇴출 시 키 려 고 애 쓰 는 것 외 에는 다른 방면 에 서 는 무력 하 다.따라서 프로 그래 밍 을 할 때 Exception 시스템 에 더 관심 을 가 져 야 합 니 다.
Runtime Exction 시스템 은 잘못된 형식 변환, 배열 의 크로스 오 버 접근 과 빈 포인터 에 접근 하려 는 시도 등 을 포함한다.Runtime Exception 이 나타 나 면 틀림없이 당신 의 잘못 입 니 다.
다른 비 Runtime Excetpion (IOException 등) 은 일반적으로 외부 오류 입 니 다. 예 를 들 어 파일 끝 에서 데 이 터 를 읽 으 려 는 등 프로그램 자체 의 오류 가 아니 라 응용 환경 에서 발생 하 는 외부 오류 입 니 다.
package com;
public class ThreadDemo implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread t, Throwable e) {
StackTraceElement[] stes = e.getStackTrace();
for (StackTraceElement stackTraceElement : stes) {
String className = stackTraceElement.getClassName();
String fileName = stackTraceElement.getFileName();
int lineNumber = stackTraceElement.getLineNumber();
String methodName = stackTraceElement.getMethodName();
System.out.println("Exception in thread \"" + t.getName() + "\" "
+ e + "
" + "at " + className + "." + methodName + "("
+ fileName + ":" + lineNumber + ")");
}
}
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new ThreadDemo());
int a = 1 / 0;
new Thread() {
public void run() {
int b = 2 / 0;
};
}.start();
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.