Java
[ Java ] Exception, RuntimeException 에 대하여
구티맨
2020. 6. 19. 11:37
Java Exception에는 Exception과 RuntimeException이 있다.
차이는 먼저 아래 표를 참조하자.
Exception - Checked Exception | RuntimeException - Unchecked Exception | |
처리 여부 | 반드시 예외 처리 해야 한다 | 예외 처리를 하지 않아도 된다 |
트랜잭션 롤백 | 롤백이 되지 않음 | 롤백 진행 |
예외 처리 확인 | 컴파일 중 | 런타임 중 |
발생 | 외부 영향으로 발생 할 수 있는 것들 ( 사용자 동작, 운영체제 등 ) |
프로그래머 실수에 의해서 발생 |
Checked Exception은 try~catch 구문이나 throws를 이용하여, 예외를 바로 처리하거나 호출하는 함수에서 처리를 해야 한다.
그렇지 않으면 컴파일 시에 처리하지 않은 예외가 있다고 에러를 발생 시킨다.
Checked Exception은 롤백이 되지 않는데, 이는 예외 발생 후 이후 로직이 그냥 수행된다는 의미이다.
즉, Checked Exception이 발생하면 복구하는 로직을 구현하여 트랜잭션을 마저 진행하라는 것인데, 그런 성격의 트랜잭션이라면 그렇게 진행을 하고 아니면 RuntimeException을 발생시켜( 트랜잭션 롤백 ) 외부에 에러를 리턴을 해주면 된다.
예외는 이렇게 간단하게 나눌 수가 있지만, 제일 중요한 것은 어떤 예외를 사용하고 어떻게 예외를 처리하는가 인 것 같다.
이에 대해서는 조금 더 내공이 쌓이면 정리해보도록 하자.