기본 원칙 2가지
기본적으로 언체크(런타임) 예외 사용
체크 예외는 비즈니스 로직상 의도적으로 던지는 예외에만 사용하자
>> 반드시 처리해야 하는 예외일 때
>> 계좌 이체 실패, 결제시 포인트 부족, 로그인 ID PW 불일치
>> 체크 예외로 만들어 두면 컴파일러를 통해 놓친 예외 인지 가능
체크 예외 활용
왜 언체크 예외가 기본?

복구 불가능한 예외
대부분의 예외는 복구 불가능
>> SQLException 같은 예외는 데이터베이스에 문제가 있어 발생하는 서비스나 컨트롤러에서 복구 불가능한 예외

의존 관계에 대한 문제
처리할 수 없는 예외이기 때문에 계속해서 throws를 통해 예외를 던져야 함
>> 리포지토리를 JDBC 기술이 아닌 다른 기술로 변경하면 예외의 의존을 변경해야 함 (서비스 코드 수정 필요)
언체크 예외 활용

체크 예외들을 런타임 예외로 변환
>> 서비스, 컨트롤러는 예외를 처리할 수 없으면 별도 선언없이 둠

런타임 예외를 사용하면 중간에 기술이 변경되어도
>> 컨트롤러, 서비스에서 코드 변경 필요 x
구현 기술이 변경되는 경우
>> 예외 공통 처리에서는 예외에 따른 처리 필요할 수도
>> 하지만 변경의 영향 범위 최소화
런타임 예외는 문서화를 잘해야 함
>> 또는 코드에 throws를 남겨 중요 예외를 인지하게 해줘야 함
예외 포함과 스택 트레이스
예외를 전환할 때는 꼭 기존 예외 포함해야 함!!
>> 기본 예외의 스택 트레이스를 확인하기 위해
출처 : 김영한, 스프링 DB 1편 - 데이터 접근 핵심 원리
'Spring' 카테고리의 다른 글
DB / 데이터 접근 기술 (0) | 2025.04.26 |
---|---|
DB / 스프링과 문제 해결 - 예외 처리, 반복 (0) | 2025.04.24 |
DB / 스프링과 문제 해결 - Transaction (0) | 2025.04.22 |
DB / Transaction (0) | 2025.04.21 |
DB / Connection Pool, DataSource (0) | 2025.04.20 |