본문 바로가기
JAVA BASE/Exception(예외)

01. [자바] 프로그램 오류, Exception 클래스의 계층구조

by staticClass 2020. 12. 20.

프로그램 오류

프로그램이 어떤 원인으로 인해 오작동, 비정상적으로 종료되는 경우가 있는데
이것을 프로그램 에러 또는 에러라고 한다.
이런 에러를 발생시점에 따라 '컴파일 에러', '런타임 에러', '논리적 에러'로
나눌 수 있다.

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

자바에서는 발생할 수 있는 프로그램 오류를 '에러(error)', '예외(Exception)' 두 가지로 구분 했다.
에러는 발생하면 복구할 수 없는 심각한 오류이고, 예외는 발생하더라도 수습이 가능한 덜 심각한 에러이다.

에러(error)     : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류

예외 클래스의 계층구조

자바에서는 실행 시 발생할 수 있는 오류(Exception과 Error)를 클래스로 정의하였다.

모든 클래스의 조상은 Object클래스이므로 Exception과 Error클래스도 Object의 자손이다.

예외클래스 계층도

 

 

모든 예외의 최고 조상은 Exception클래스이다.

Exception클래스와 RuntimeException클래스 중심의 상속계층도

 

 

RuntimeException도 Exception의 자손이지만 두개를 나누는게 좋겠다.

RuntimeException클래스들은 주로 프로그래머의 실수에서 발생될 수 있는 예외들이고

그외의 클래스들은 외부의 영향, 프로그램의 사용자에 의해 발생하기 때문이다.
예를 들면,
FileNotFoundException : 존재하지 않는 파일의 이름을 입력
ClassNotFoundException : 클래스의 이름을 잘못 입력
DataFormatException : 데이터 형식이 잘못된 경우에 발생

Exception 클래스들        :  사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
RuntimeException클래스들  :  프로그래머의 실수로 발생하는 예외

댓글