Spring

DB / 자바 예외

Dear-J 2025. 4. 23. 18:03

기본 원칙 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