예외처리 알아보기

Checked Exception, Unchecked Exception

체크드 익셉션과 언 체크드 익셉션은 런타임에 예외 처리를 반드시 처리해야 하는지에 대한 관점이다.

예외가 발생할 사례를 개발자는 컴파일 이전에 알고 있기 때문에 CheckedException 이 발생하는 상황에 미리 예외처리를 명시해야 한다.

이 예외는 Exception 클래스를 상속 받고 있으며, 대표적으로 IOException, ClassNotFoundException 같은 예외 클래스가 존재한다.

예외가 발생할 것을 컴파일 시점에 알지 못하여, 런타임 중 발생하는 예외 상황이다.

이 예외는 RuntimeException 클래스를 상속 받고 있으며, 대표적으로 NullPointerException 과 같은 예외 클래스가 존재한다.

Checked Exceptiontry-catch 또는 throws 를 항상 강제하기 때문에, 이를 계속 호출자에게 연쇄적으로 구문을 작성하지 말고 Unchecked Exception 으로 재구성 하여 예외를 관리하는 것을 권장한다.

스프링에서 트랜잭션은 논리적 흐름을 하나의 단위로 묶어주는 것을 의미하며, 트랜잭션 특성 상 멱등성을 지켜야한다.

그렇기 때문에 예외가 발생하면 롤백을 지원하게 되는데, RuntimeException 이 발생하면 롤백이 수행되어 원자성을 제공한다.

Summary

참고 자료

seungjjun.tistory.com
Checked Exception과 Unchecked Exception
inpa.tistory.com
(Un)Checked Exception과 트랜잭션의 오해와 진실