[Effective Java] 59. 불필요한 Checked Exception 사용은 피하라.
Checked Exception을 사용하면 예외처리를 강제함으로써 프로그램의 안전성을 높일 수 있다.
(try-catch 문 사용이 필수적이기 때문에)
하지만 너무 남발하면 사용하는 측에서 불편한 api가 된다.
만약 API를 제대로 사용해도 예외적인 상황이 발생하는 것을 피할 수 없을때, 그리고 API 사용자가 예외 상황에 대해 조치를 취할 수 있을때 Checked Exception을 사용하는 것은 괜찮다.
하지만 그런 경우가 아니라면 Runtime Exception으로 두는 것이 좋다.
Unchekced Exception으로 바꾸기
api가 Checked Exception을 사용하지 않도록 리팩토링 할 수 있다.
// 리팩토링 전
try {
obj.action(args);
} catch(TheCheckedException e) { ... }
// 리팩토링 후
if(obj.actionPermitted(args)) {
obj.action(args);
} else {
...
}
즉, 위와 같이 예외 대신 actionPermitted()
같이 상태 체크를 하는 별도의 api를 추가하여 action()
메서드가 Checked Excetpion을 사용하는 것을 막을 수 있다.
항상 이렇게 리팩토링 할 수 있는 것은 아니지만 이렇게 바꿀경우 api 사용이 더 편리해진다.
관련 내용은 규칙 57에도 다룸.
댓글남기기