Java 복습 - 예외, 예외 클래스

NellDora·2024년 3월 31일

JAVA

목록 보기
5/5

예외

잘못된 조작이나 코딩 오류로 인한 프로그램 오류를 의미

예외가 발생하면 프로그램은 즉시 종료 처리된다.

그러나 예외 처리로 정상 동작을 유도할 수 있다.

예외 클래스

모든 예외 클래스는 java.lang.Exception을 상속 받는다.
JVM에서 프로그램을 실행 중에 예외가 발생하면 해당 예외 클래스로 객체를 생성하며 예외 처리 코드에서 예외 객체를 사용 할 수 있도록 해준다.

예외는 두 가지로 나누어 볼 수 있다.
Exception - 체크 예외
Runtime Exception - 언체크 예외


[Runtime Exception / 하위클래스]
언체크 예외이자 실행 예외 클래스
[그 외의 예외 클래스]
체크 예외 또는 일반 예외 클래스

둘의 차이는 무엇인가?

Checked

컴파일러가 강제로 예외 처리를 요구하는 예외이며 예외처리 코드를 확인하여 예외처리를 강제로 한다.

Unchecked

실행 시 예측할 수 없이 갑자기 발생하는 현상 때문에 예외 처리 코드를 확인하지 않으므로 예외 처리가 강제가 되지 않는다.
그러나 런타임 예외가 발생하면 프로그램이 비정상적으로 종료된다.

여기서 조금 더 나아가서 Spring 영역에서 이야기를 해보자

스프링에서 트랜잭션을 사용하였을 때를 보자
Checked 예외가 발생 했을 때는 실행 코드의 오류 발생까지 일부분 커밋이 된다.
※무조건 적으로 일부분 커밋이 되는 것은 아니며 사용자가 임의로 설정으로 오류 발생 시 롤백 설정 가능
Unchecked 예외가 발생 했을 때는 실행 코드의 전체가 롤백이 된다.

profile
불타오르는 백엔드 개발자

0개의 댓글