
Java 예외 처리 (Exception Handling) 완벽 가이드
Java에서는 프로그램 실행 중 발생할 수 있는 예외 상황을 안전하게 처리하기 위해 예외 처리(Exception Handling) 메커니즘을 제공합니다. 이 글에서는 Java의 예외 처리 기본 개념, 문법, 실무 적용 방법까지 체계적으로 설명합니다.
1. 예외(Exception)란?
예외란 프로그램 실행 중 발생하는 오류 상황입니다. 예외가 발생하면 프로그램은 정상 흐름을 중단하고, 예외 처리를 통해 오류 상황에 대처해야 합니다.
2. 예외의 종류
- Checked Exception: 컴파일 시점에 반드시 처리해야 하는 예외 (예:
IOException,SQLException) - Unchecked Exception: 런타임 시점에 발생, 컴파일 시점 처리 강제 없음 (예:
NullPointerException,ArrayIndexOutOfBoundsException)
3. try-catch 문 기본 구조
try {
// 예외 발생 가능 코드
} catch (ExceptionType e) {
// 예외 처리 코드
}
4. finally 블록
finally 블록은 예외 발생 여부와 관계없이 항상 실행됩니다. 주로 리소스 해제 등에 사용됩니다.
try {
// 예외 발생 가능 코드
} catch (Exception e) {
System.out.println("예외 발생");
} finally {
System.out.println("항상 실행");
}
5. throws 키워드
메서드에서 예외를 호출한 쪽으로 전달할 때 사용합니다.
public void readFile(String path) throws IOException {
FileReader reader = new FileReader(path);
}
6. 사용자 정의 예외
실무에서는 필요에 따라 사용자 정의 예외를 만들어 사용할 수 있습니다.
class CustomException extends Exception {
public CustomException(String message) {
super(message);
}
}
7. 실무 Best Practice
- 예외 발생 시 상세 메시지와 함께 로깅
- 불필요한
Exception포괄 처리 지양, 구체적인 예외 처리 - 사용자 정의 예외 활용하여 비즈니스 로직 명확화
try-with-resources사용하여 리소스 자동 해제
8. 결론
Java의 예외 처리 메커니즘은 안정적인 프로그램 개발의 필수 요소입니다. Checked와 Unchecked 예외의 차이를 명확히 이해하고, 상황에 맞는 적절한 예외 처리를 통해 안정적이고 가독성 높은 코드를 작성하세요.