4.3.1 정리
- 예외를 잡아서 아무런 조취를 취하지 않거나, 의미 없는 throws 선언을 남발하는 것은 위험함
- 예외는 복구, 전달, 전환해야 함
- 의미 있는 예외로 변경하거나, 불필요한 catch/throws를 피할 두 가지 방법의 예외 전환(중첩 예외, 예외 포장)이 있음
- 복구할 수 없는 예외는 런타임 예외로 전환하는 것이 바람직함
- 애플리케이션 로직을 담기 위한 예외는 체크 예외로 만듦
- JDBC의 SQLEception은 복구할 수 없는 예외이므로 런타임 예외로 포장
- SQLException의 에러 코드는 DB에 종속되기 때문에 DB 에 독립적인 예외로 전환될 필요성이 있음
- 스프링은 DataAccessException을 통해 DB에 독립적으로 적용 가능한 추상화 런타임 예외 계층을 제공
- DAO를 데이터 액세스 기술에서 독립 시키려면 인터페이스 도입 및 런타임 예외 전환, 기술에 독립적인 추상화된 예외로 전환이 필요함
'토비의 스프링 정리' 카테고리의 다른 글
토비의 스프링 - 5.2 트랜잭션 서비스 추상화 (0) | 2022.10.04 |
---|---|
토비의 스프링 - 5.1 서비스 추상화 (0) | 2022.10.03 |
토비의 스프링 - 4.2 예외 전환 (0) | 2022.10.03 |
토비의 스프링 - 4.1 사라진 SQLException (0) | 2022.10.02 |
토비의 스프링 - 3.7 3장 정리 (0) | 2022.09.30 |