본문 바로가기

준비중

자바 복습하기(예외처리편)

반응형

* 해당 게시물은 자바의 정석(책)을 참고하여 작성하였습니다.

 

에러

 

에러는 발생 시점에 3가지 종류로 나뉜다.

1. 컴파일 에러 - 컴파일 시에 발생하는 에러

2. 런타임 에러 - 실행시에 발생하는 에러

3. 논리적 에러 - 실행은 되지만, 의도와 다르게 동작하는 것

 

여기서 런타임 에러는 2가지로 나뉜다.

에러(error) - 프로그램 코드에 의해서 수습될 수 없는 심각한 오류

예외(exception) - 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류

 

 

예외 클래스

자바는 오류를 클래스로 정의되어 있다.

Exception의 자손 클래스로는 IOExeption, ClassNotFoundException, RuntimeException들이 있는데

자바의 예외 클래스는 RuntimeException과 그 외의 Exception들의 자손 클래스 2분류로 나뉜다.

앞으로 이 2가지의 분류들을 RuntimeException과 Exception이라고 쉽게 불러서 글을 쓰겠다.

 

RuntimeException - 사용자의 실수와 같은 요인에 의해 발생하는 예외

RuntimeException - 프로그래머의 실수로 발생하는 예외

 

 

1. try - catch - finally

가장 보편적인 예외처리 방식으로 아래는 종합적인 예시 코드이다.

try {

} catch (Exception e) {
    e.printStackTrace(); //예외발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다.
    e.getMessage(); //발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.
} finally {

}

2. throws

throws를 이용하면 예외를 method에 선언할 수 있다.

void method() throws Exception1 {

}

위의 코드처럼 method의 선언부에 예외를 선언함으로써 method를 사용할 때 어떤 예외들이 처리되어야 하는지 쉽게 알 수 있다.

 

3. 사용자 정의 예외 method 생성

Exception class를 상속받아 나만의 custom 예외 클래스를 만들 수 있다.

class CustomException extends Excepion {

}

* 요즘 메타로는 주로 RuntimeException을 상속받아서 unchecked 예외를 처리한다.

 

 

반응형