Spring

DB / 스프링과 문제 해결 - 예외 처리, 반복

Dear-J 2025. 4. 24. 01:05

데이터 접근 예외 직접 만들기

데이터베이스 오류에 따라 특정 예외는 복구하고 싶을 수 있음

데이터를 DB에 저장할 때 같은 ID가 이미 데이터베이스에 저장되어 있으면

>> 데이터 베이스는 오류 코드를 반환하고 JDBC 드라이버는 SQLException을 던짐

>> 여기에는 데이터베이스가 제공하는 errorCode 들어있음

 

스프링 예외 추상화

스프링은 데이터 접근 계층에 대한 수십 가지 예외를 정리해 일관된 예외 계층 제공

각 예외는 특정 기술에 종속적이지 않게 설계

JDBC나 JPA를 사용할 때 발생 예외를 스프링이 제공하는 예외로 변환하는 역할도 제공

 

NonTransient 예외

>> 일시적, 동일 SQL를 다시 시도했을 때 성공 가능성

>> 쿼리 타임아웃, 락과 관련된 오류들

 

Transient 예외

>> 일시적 x, 동일 SQL 반복 시 실패

>> SQL 문법 오류, 데이터베이스 제약 조건 위배

 

스프링 예외 변환기를 통해 SQLException의 errorCode에 맞는 적절한 스프링 데이터 접근 예외로 변환

>> 서비스, 컨트롤러에서 예외 처리 필요시 특정 기술에 종속적인 SQLException 대신 스플링 데이터 접근 예외 사용

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 김영한, 스프링 DB 1편 - 데이터 접근 핵심 원리

'Spring' 카테고리의 다른 글

DB / Spring JdbcTemplate  (0) 2025.04.27
DB / 데이터 접근 기술  (0) 2025.04.26
DB / 자바 예외  (0) 2025.04.23
DB / 스프링과 문제 해결 - Transaction  (0) 2025.04.22
DB / Transaction  (0) 2025.04.21