이론/Java
Checked exception 과 Unchecked exception
모달조아
2022. 11. 22. 22:28
Unchecked exception 는 런타임 예외를 상속받는 예외이고 Checked exception는 그 외의 예외들을 말합니다.
Checked exception 는 컴파일 시점에 확인되므로 예외 처리(try catch 처리를 하거나 throws 를 명시) 가 강제됩니다.
Checked exception의 본래 의도는 예외가 발생하면 발생한 지점에서 해결하고자 함입니다. 그렇기 때문에 예외 발생 시 트랜잭션이 롤백되지 않습니다. 반대로 Unchecked exception 은 롤백됩니다.
다만, Checked exception 을 실제로는 발생 지점에서 해결할 수 있는 경우가 많지 않아 예외를 상위로 던지는 경우가 빈번하게 일어납니다.
또, 예외를 던진다는 것을 명시해줘야하므로 코드량이 많아지고, 호출한 메서드가 던지는 예외를 사용하는 측에서 알게되는 것은 캡슐화를 어긴다고 볼 수 있으므로 사용을 지양합니다.