1. 예외처리
컴파일 에러 : 컴파일 시 발생하는 에러
런타임 에러 : 실행시 발생하는 에러
논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것
에러(error) :
프로그램 코드에 의해서 수습될 수 없는 심각한 오류
예외(exception) :
프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
예외 클래스의 계층구조
- Exception 클래스들
- 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
- RuntimeException 클래스들
예외처리하기
- 예외처리(exception handling)
- 정의
프로그램 실행 시 발생할 수 있는 예외에 대비한 코드를 작성하는 것
- 목적
프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것
메서드에 예외 선언하기
- 자바에서는 메서드를 작성할 때 메서드 내에서 발생할 가능성이 있는 예외를 메서드의 선언부에 명시하여 이를 메서드를 사용하는 쪽에서는 이에 대한 처리를 강요하기 때문에, 프로그래머들의 짐을 덜어주는 것은 물론이고 보다 견고한 프로그램 코드를 작성할 수 있도록 도와준다.
void method() throw Exception1, Exception2 {
}
finally 블록
- try-catch 문과 함께 예외의 발생여부에 상관없이 실행되어야할 코드를 포함시킬 목적으로 사용된다.
- try 블록이나 catch 블록에서 return 문이 실행되는 경우에도 finally 블럭의 문장들이 먼저 실행된 후에, 현재 실행중인 메서드를 종료한다.
자원 자동 반환
- 주로 입출력에 사용되는 클래스를 사용할 때 유용하다.
예외 되던지기(Exception Re-Throwing)
- 이 방법은 하나의 예외에 대해서 예외가 발생한 메서드와 이를 호출한 메서드 양쪽 모두에서 처리해줘야 할 작업이 있을 때 사용된다.
- 이 때 주의할 점은 예외가 발생할 메서드에서는 메서드의 선언부에 발생할 예외를 throws에 지정해줘야 한다.