2025.08.26

✅ 1. 예외 처리 구문

🔹 finally

🔸 finally 안에 try-catch를 쓰는 이유

try {
    // 예외 발생 가능 코드
} catch (Exception e) {
    // 예외 처리
} finally {
    try {
        // 자원 정리 코드
    } catch (Exception e) {
        // 자원 정리 중 예외 처리
    }
}

✅ 2. 예외 선언과 처리

🔹 throws 키워드

public void readFile() throws IOException {
    // 예외 발생 가능 코드
}

🔹 예외 처리 (try-catch) vs 예외 전가 (throws)

구분 예외 처리 (Handling) 예외 전가 (Declaring)
키워드 try-catch throws
위치 메서드 내부 메서드 선언부
목적 예외를 직접 처리 예외를 호출한 쪽으로 넘김
책임 내가 처리함 너가 처리해 하고 넘김
비유 "내가 문제 해결할게!" "이 문제는 너가 해결해줘!"

✅ 3. throw vs throws 차이

구분 throw throws
역할 예외를 직접 발생시킴 예외를 호출자에게 전가
위치 메서드 내부에서 사용 메서드 선언부에서 사용
사용 예시 throw new 예외클래스(); public void method() throws 예외클래스
예외 개수 하나의 예외 객체만 던질 수 있음 여러 개의 예외 클래스 선언 가능
목적 실제로 예외를 발생시키는 행위 예외를 직접 처리하지 않고 넘기는 행위

✅ 4. 사용자 정의 예외