자바에서는 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 에러(error)라고 한다. 에러 이외에 프로그램 자체에서 발생하는 오류는 예외(exception)라고 한다.
예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외가 발생하면 프로그램은 곧바로 종료된다는 점에서 에러와 비슷하다.
그러나 예외는 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다.
자바는 예외가 발생할 가능성이 높은 코드를 컴파일 할 때 예외 처리 유무를 확인한다. 만약 예외 처리 코드가 없다면 컴파일이 되지 않는다. 하지만 모든 예외에 대해서 예외처리 유무를 확인하는 것은 아니다.
예외에는 일반예외, 실행 예외의 두가지 종류가 있다.
일반예외
∙ 컴파일러 체크 예외 라고도 함
∙ 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 소스를 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사한다.
∙ 만약 예외 처리 코드가 없다면 컴파일 오류가 발생한다.
실행예외
∙ 컴파일러 넌 체크예외 라고도 함
∙ 실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일 하는 과정에서 예외 처리 코드가 있는지 검사하지 않는다.
자바에서는 예외를 클래스로 관리한다. JVM은 프로그램을 실행하는 도중에 예외가 발생하면 해당 예외 클래스로 객체를 생성한다. 그리고 나서 예외 처리 코드에서 예외 객체를 이용할 수 있도록 해준다. 모든 예외 클래스는 java.lang.Exception 클래스를 상속받는다.
일반 예외와 실행 예외 클래스는 RuntimeException 클래스를 기준으로 구별한다. RuntimeException의 하위 클래스가 아니면 일반 클래스이고, 하위 클래스이면 실행 예외 클래스이다. 클래스 상속 관계에서 부모에 Runtime이 있다면 실행 예외 클래스.
'Language > Java' 카테고리의 다른 글
예외 처리 코드 (try - catch - finally) (0) | 2022.01.27 |
---|---|
실행 예외 (0) | 2022.01.27 |
[JAVA] 람다식 (0) | 2022.01.16 |
[JAVA] 인터페이스 (0) | 2022.01.16 |
[JAVA] 생성자 (0) | 2021.11.09 |