일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Q 클래스
- queryDSL
- jwt메서드
- 최종 프로젝트
- JPA주의사항
- 스프링부트오류
- REST란
- uncheck Exception
- spring서버
- json
- jpa회원가입
- ERD 작성
- 복합키
- JPA
- json gson 차이
- github
- Spring Spring boot 차이
- JoinColumn
- jpa에러
- Unsatisfied dependency
- Error creating bean with name
- 1차캐시
- @IdClass
- 스프링 부트 기능
- 인텔리제이
- git
- 스프링 부트 공식 문서
- 빈생성안됨
- Filter
- REST API 규칙
- Today
- Total
Everyday Dev System
checked, unchecked Exception - rollback 이슈 본문
Exception에 대한 글
2023.08.04 - [나의 호기심] - Exception 뜯어보기
Exception 뜯어보기
Exception에 대해서 자세히 살펴보겠습니다. Exception 아래 사진을 보면 Throwable 클래스를 상속한 Exception 과 Error 클래스가 있습니다. 아래는 Exception 을 상속한 RuntimeException 입니다. 여기서 쓰인 주석
cdev.tistory.com
checked, unchecked Exception - rollback 이슈
checked Exception은 기본적으로 rollback을 하지 않는다.
여러 DB 작업을 Transaction으로 묶지 않고 수행하는 상황에서 checked Exception이 발생하면,
수행한 데이터 관련된 작업이 RollBack 되지 않고 Commit되어 그대로 DB에 반영이 된다.
그러므로, DB CUD 시에는 @Transaction(ReadOnly = false) 를 기재하는 것을 권장한다.
서버를 run하여 컴파일하는 시점(.class 생성)에 발생하여 서버가 stop되는 예외
package refill.station.config.annotation;
import org.springframework.transaction.annotation.Transactional;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional(rollbackFor = Throwable.class)
public @interface TransactionalWithRollback {
}
unchecked Exception은 rollback을 수행한다.
(runtime Exception은 대표적인 unchecked Exception이다.
서버가 구동 중에 예외되는 처리.
임의의 예외 클래스를 만들어 예외 처리를 하는 경우가 많다.
허나, 일반적으로 실행시 예외를 처리할 수 있는 경우에는 RuntimeException 클래스를 확장해
Unchecked Exception을 사용하는 것이 좋다고 한다.
reference :
선우 튜터님의 7월 21일 후발대 강의의 일부 발췌 → 초상권으로 인해 링크 참조 불가
'내배캠 주요 학습 > 매일 공부' 카테고리의 다른 글
React로 프론트 구현하기 (0) | 2023.08.08 |
---|---|
Task-Rail, 협업을 위한 Rail 기획 (0) | 2023.08.07 |
OAuth , Mokito (0) | 2023.07.30 |
너의 의견은 : 투표 게시판, KPT 회고 (0) | 2023.07.24 |
개발 인생 : 개발자 커뮤니티 회고 (0) | 2023.07.07 |