예외(Exception)

라이언양 위키
둘러보기로 가기 검색하러 가기

1 정의

사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류. 예외가 발생되면 프로그래은 곧바로 종료된다는 점에서 에러와 유사. 그러나 예외는 예외 처리(exception handling)를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있음.

2 설명

각 언어별로 예외를 어떻게 처리를 하는 지 알아보자.

2.1 자바

자바(Java)에서는 예외를 클래스로 관리하며 JVM은 프로그램을 실행하는 도중에 예외가 발생하면 해당 예외 클래스로 객체를 생성함. 그러고 나서 예외 처리 코드에서 예외 객체를 이용할 수 있도록 함. 모든 예외 클래스는 java.lang.Exception 클래스를 상속 받음.

3 종류

3.1 일반 예외(exception)

컴파일러 체크 예외라고도 함. 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 소스를 컴파일하는 과정에서 해당 예외 처리 코드가 있는지 검사함. 만약 예외 처리 코드가 없다면 컴파일 오류가 발생함. Runtime Exception의 하위 클래스가 아닌 예외를 일반 예외 클래스라고 함.

3.2 실행 예외(runtime exception)

넌 체크 예외라고도 함. 실행 시 예측할 수 없어 갑자기 발생하기 때문에 컴파일하는 과정에서 예외 처리 코드가 있는지 검사하지 않음. 실행 예외 클래스는 RuntimeException 클래스를 기준으로 구별함. 클래스 상속 관계에서 부모(조상)에 RuntimeException이 있다면 실행 예외 클래스임.