오류(Error) 에러(Exception)
둘 다 Object
- Throwable
을 상속 받고,Throwable
객체는 오류나 예외에 대한 메시지, 정보를 담고 있다.
Error
시스템 수준에서 일어나는 프로그램 자체에서 해결하기 어려운 오류
Exception
프로그램 수준에서 일어나고, 개발자나 사용자와 같이 사람에 의해 나타나는 오류
그래서 이런 Exception에 대해서는 애플리케이션 상에서 잡을 수 있다.
이것도 Checked Exception
, Unchecked Exception
둘로 나뉘는데
Checked Exception | Unchecked Exception | |
---|---|---|
예외 처리 | 필수 | 선택 |
검증 | 컴파일 시점 | 런타임 시점 |
예시 | IOException - FileNotFoundException ... | RuntimeException - IndexOutOfBoundsException, IllegalArgumentException ... |
한번 집고 넘어가고 싶은 것은 트랜잭션에 관한 것
대부분 블로그에서
checked - 트랜잭션 불가능(또는 하지 않아도 됨)
unchecked - 트랜잭션 가능(또는 함)
이라고 설명되어 있는데 이 정보는 비약이라고 한다.
사실 spring의 트랜잭션 부분 문서 상에
기본적으로 RuntimeException(Unchecked), Error는 롤백 옵션이 내제되어있다.
다만, Checked Exception 같은 경우는 기본적으로 롤백이 되지 않는다.
이 부분 때문에 다들 오인하는 것 같다고 .. 출처: 백기선님 영상
결론적으로는 기본값이 저럴 수는 있어도 @Transaction
상 옵션으로 rollbackFor
와 같은 롤백에 관한 옵션을 줄 수 있다. 따라서, checked exception도 롤백이 가능하고, unchecked도 필요가 없다면 롤백 하지 않을 수 있다.
참고
https://min103ju.github.io/java/java_exception_rollback/
https://choiblack.tistory.com/39
https://bcp0109.tistory.com/303
'Web' 카테고리의 다른 글
Proxy (0) | 2023.08.11 |
---|---|
[WebRTC] 통신 형식 및 기본 동작에 필요한 서버 (0) | 2023.03.06 |
선생님.. 소셜 로그인이 하고싶어요.. (2) | 2023.02.16 |
이젠 잊지 말자, Servlet (0) | 2022.12.31 |