
안녕하세요. 이번에는 예외 처리(Exception Handling)를 위해
꼭 필요한 기본 문법try, catch, finally에 대해 알아볼게요!
하나 하나의 차이점이 아닌 전부 다 사용하기 때문에 사용법을 간단하게 알아볼게요!
1. try 블록
try는 예외가 발생할 수 있는 코드를 넣습니다.
그리고 예외가 발생을 한다면 곧바로 catch로 넘기는 친구에요
2. catch 블록
catch는 try블록에서 발생하는 특정 예외를 잡아 처리하는 곳이에요.
catch는 여러 개를 사용해 다양한 예외별로 다르게 처리할 수도 있답니다!
3. finally 블록
finally는 앞에 두 친구랑 다르게 예외 발생 여부와 상관없이 무조건 실행되는 코드에요.
try - catch 없이 바로 try - finally로 바로 실행할 수 있답니다.
보통 자원 해제(파일닫기, DB 연결 종료 등)를 위해 주로 사용하는 친구입니다!
간단하게 알아봤는데요. 설명으로는 이해가 힘들수도 있으니 예시 두 가지를 알아볼까요?
try {
// 예외 발생 가능성이 있는 코드
int result = 10 / 0; // 0으로 나누기 -> ArithmeticException 발생
System.out.println(result);
} catch (ArithmeticException e) {
// 예외 처리 코드
System.out.println("0으로 나눌 수 없습니다!");
} finally {
// 예외 발생 여부와 상관없이 무조건 실행됨
System.out.println("프로그램 종료 준비");
}
// 출력 결과
0으로 나눌 수 없습니다!
프로그램 종료 준비
이렇게 예외처리를 할 수 있습니다.
앞에 설명한 catch를 여러 개를 사용했을 때 예시도 하나 보여드릴게요.
try {
// 여러 가지 예외가 발생할 수 있는 코드
int[] arr = new int[3];
System.out.println(arr[5]); // ArrayIndexOutOfBoundsException
String s = null;
s.length(); // NullPointerException
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("배열 인덱스 초과!");
} catch (NullPointerException e) {
System.out.println("널 참조 오류!");
} finally {
System.out.println("예외 처리 완료");
}
이렇게 catch를 여러개를 사용할 수 있다는걸 확인이 되죠?
| 키워드 | 역할 | 특징 |
| try | 예외가 발생할 가능성이 있는 코드 | 반드시 필요 |
| catch | 예외 발생 시 처리하는 코드 | 여러 개 가능, 예외 타입 지정 |
| finally | 예외 발생 여부 상관없이 실행되는 코드 | 자원 해제 등 용도 |
마지막으로 간단한 세 가지의 키워드들의 특징을 표로 정리했어요!

이렇게 예외 처리의 세 가지의 키워드 try, catch, finally를 알아봤는데요.
'코딩을 하는데 굳이 필요로 할까?' 라는 생각이 들겁니다.
예외 처리는 프로그램이 예상치 못한 오류(예외)가 발생했을 때,
갑자기 멈추지 않고 안전하게 대처해서 사용자에게 문제를 알리고,
필요한 마무리 작업(파일 닫기 등)을 하도록 도와주는 고마운 친구입니다!

밥과 반찬도 골고루 먹어야 건강해지듯
코딩의 키워드도 다양하게 사용해야 건강한 코딩이 되는건 저만의 생각일까요?
'Backend > Java' 카테고리의 다른 글
| MVC (2) | 2025.07.15 |
|---|---|
| OOP-SOLID 원칙 (6) | 2025.07.14 |
| this vs super vs final (0) | 2025.07.12 |
| 상속과 구현(extends VS implements) (1) | 2025.07.12 |
| 인터페이스와 추상화 클래스(interface VS abstract class) (0) | 2025.07.12 |