자바의 정석 -(8장 예외처리)

김우경·2022년 5월 6일
0

Java

목록 보기
9/9
post-thumbnail

8장

컴파일 에러 : 컴파일 시에 발생하는 에러
런타임 에러 : 실행 시에 발생하는 에러
논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것

자바에서는 실행(runtime) 시 발생할 수 있는 프로그램 오류를
'에러', '예외' 두 가지로 구분한다.

에러가 발생하면, 프로그램의 비정상적인 종료를 막을 길이 없지만,
예외는 발생하더라도 프로그래머가 이에 대한 비정상적인 종료를 막을 수 있다.

예외(Exception)
모든 클래스이 조상은 Object이므로 Exception과 Error클래스 역시 자손이다.
모든 예외의 최고 조상은 Exception이다.

크게 두 가지로 나뉜다.
1. Exception클래스와 그 자손들(IOEception, ClassNotFoundException..)
2. RuntimeException클래스와 그 자손들 (ClassCastException, NullpointerException, IndexOutOfBoundsException ...)

RuntimeException클래스들은 주로 프로그래머의 실수에 의해서 발생될 수 있는 예외들
Exception클래스들은 주로 외부의 영향으로 발생할 수 있는 것들로서, 프로그램의 사용자들의 동작에 의해서 발생하는 경우가 많다. (ex. 존재하지 않는 파일의 이름 입력 .. )

예외처리(Exception handling)

class ExceptionEx01 {
public static void main(String[] args)
{
try {
try { } catch (Exception e) { }
} catch (Exception e) {
try { } catch (Exception e) { } // 에러. 변수 e가 중복 선언되었다.
} // try-catch의 끝
try {

} catch (Exception e) {

} // try-catch의 끝
} // main메서드의 끝
}

하나의 try블럭 다음에는 여러 종류의 예외를 처리할 수 있도록
하나 이상의 catch블럭이 올 수 있으며
이 중 발생한 예외의 종류와 일치하는 단 한개의 catch블럭만 수행된다.
일치하는 catch가 없으면 처리되지 않는다.

0개의 댓글