인프런 커뮤니티 질문&답변

해톨님의 프로필 이미지

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

트랜잭션 문제 해결 - 트랜잭션 템플릿

예외처리

해결된 질문

작성

·

119

0

안녕하세요 예외처리에 대한 질문이생겨 글 적습니다 !

MemberServiceV3_2에서 bizLogic()을 호출해서 메서드에서 던져진 SQLException을 잡습니다

 

그런데 MemberServiceV3_1에서 트랜잭션 매니저로 처리하는 try catch문에서는 Exception으로 예외를 잡는데

Exception이 모든 예외의 조상이라서 모든 예외를 잡는건 알고있습니다 !

그런데 헷갈리는 부분이 SQLException이 commit을 하면 사라지나요 ?아니면

이때 SQLException이 잡히나요 ? 잡히지만 이미 커밋을 해버려서 롤백할 데이터가 없기 때문에 SQLException을 IllegalStateException으로 바꿔주기만 하고 try catch문을 빠져나오는 걸까요 ??

 

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 해톨님

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 ZIP파일로 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

 

링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

해톨님의 프로필 이미지
해톨
질문자

문제 해결했습니다 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다.
님의 질문과 직접적으로 관련된 내용은 제공된 정보에 없습니다. 따라서 정확한 답변을 드리기 어렵습니다. 하지만, SQLException이 발생하고 이미 커밋이 되었다면, 그 시점에서는 롤백할 데이터가 없기 때문에 일반적인 상황에서는 해당 트랜잭션을 롤백하는 것이 불가능합니다. SQLException을 catch한 후의 처리 방법은 애플리케이션의 비즈니스 로직과 오류 처리 전략에 따라 다를 수 있습니다. 예외를 더 구체적이고 적절한 예외로 변환하여 다시 던지거나, 특정 로직을 수행하는 등의 방법이 있을 수 있습니다. 자세한 내용은 트랜잭션 관리와 예외 처리에 대한 공식 문서나 해당 기술의 가이드를 참고해 보시는 것이 좋겠습니다.

해톨님의 프로필 이미지

작성한 질문수

질문하기