Thread. UncaughtExceptionHandler 간단 한 실천

2326 단어 자바thread
자바 의 이상 처리 메커니즘 에서:
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(); } }

좋은 웹페이지 즐겨찾기