프로그램을 실행하다 보면 0으로 숫자를 나누거나, 없는 파일을 읽으려 하는 등 예상치 못한 오류(Exception)가 발생합니다. 아무런 조치를 취하지 않으면 프로그램은 그 즉시 강제 종료(크래시)됩니다.
자바에서는 try-catch-finally 구문을 통해 이러한 오류를 우아하게 수습합니다. 위험한 코드를 실행하다가 에러가 터져도, 프로그램이 죽지 않고 안전하게 다음 로직으로 넘어가게 만드는 핵심 방어 기제입니다.
try 블록은 공중 곡예사가 위험한 연기를 펼치는 무대입니다.
연기 도중 실수로 떨어지는 사고(Exception 발생)가 일어나면, 바닥에 깔아둔 그물망 (catch 블록)이 곡예사를 안전하게 받아줍니다. 덕분에 서커스(프로그램)는 중단되지 않고 계속 진행될 수 있습니다. finally는 공연이 끝난 뒤 무조건 그물망을 걷고 무대를 청소하는 정리 작업입니다.
| 키워드 | 역할 | 실행 조건 |
|---|---|---|
| try | 예외(에러)가 발생할 가능성이 있는 위험한 코드를 감싸는 구역 | 항상 실행됨 |
| catch | try 구역에서 발생한 예외를 낚아채서 수습(복구)하는 구역 | 예외가 터졌을 때만 실행됨 |
| finally | 자원 반납(파일 닫기, DB 연결 종료 등)을 위해 뒷정리를 하는 구역 | 에러가 나든 안 나든 무조건 100% 실행됨 |