메서드 선언에 throws Exception 등을 붙이는 이유

예외의 종류

종류 설명 예시 throws 필요 여부
Checked Exception 반드시 처리하거나 던져야 하는 예외 IOException, SQLException, ParseException ✔ 필요
Unchecked Exception 런타임 시 발생, 명시 안 해도 됨 NullPointerException, IllegalArgumentException ❌ 생략 가능

언제 throws 쓰고 ,언제 처리할까

상황 방법
메서드 안에서 해결할 수 있는 예외 try-catch로 직접 처리
호출자에게 처리를 맡기고 싶을 때 throws 사용해서 위임
라이브러리, 프레임워크 코드 작성 시 명확한 API 명세를 위해 throws로 문서화

정리