CH12-2 · MODEL

try-catch-finally의 실행 순서: 먼저 구분할 경계

예외가 날 수 있는 범위를 try로 감싸고 복구 가능한 타입을 catch에서 처리합니다.

핵심 경계

try에는 함께 실패 처리할 코드만 둔다

너무 넓게 감싸면 어느 문장에서 난 예외인지와 어떤 상태가 변경됐는지 알기 어렵습니다.

핵심 경계

catch 순서는 구체 타입이 먼저다

Exception을 먼저 잡으면 그 아래 IOException 같은 catch는 도달할 수 없어 컴파일 오류가 납니다.

핵심 경계

다중 catch는 같은 처리를 공유한다

관련 없는 여러 예외에 완전히 같은 복구가 필요하면 catch (A | B error)로 묶습니다.

핵심 경계 너무 넓게 감싸면 어느 문장에서 난 예외인지와 어떤 상태가 변경됐는지 알기 어렵습니다.