- JDBC 82022년 07월 16일
- starryeye
- 작성자
- 2022.07.16.:41
반응형복구가 가능한 예외는 어떻게 처리하면 좋을까..
예를 들어서..
키값이 중복이라 DB에서 예외를 던지는 경우를 생각해보자..
개발자는 이를 애플리케이션 로직상 해결할 수 있다.
(기존 키값에서 +1 정도로 해결하는 사양일 경우)
DB에서는 SQLException을 발생시키고 던진다.
개발자는 중복 키에 의한 예외인 것을..
e.getErrorCode() 로 알 수 있다.
중복 키 처리에 대한 로직은 서비스 계층에 들어가야 하는데...
이를 처리하는 조건문을 위해 서비스 계층에 SQLException을 던지면 ..
또.. OCP 위반이다.
아래 방법을 참고 하자.
repository에서 해결해보자..
repository 구현체 코드 중 일부이다.
DB에서 발생된 SQLException 예외 중,
중복 key의 경우 MyDuplicateKeyException 예외로 변환하여 던지고 있다.
(H2 DB의 경우 23505 이며 다른 DB는 또 다르다..)
이렇게 구현하면.. 서비스 계층에서는 MyDuplicateKeyException 예외라면..
key 값을 +1 하여 다시 save를 호출하는 방식으로 개발 하면 된다.
<참고>
H2 DB의 error code 문서
반응형다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)