반응형
[Effective Java] checked 예외의 불필요한 사용을 피하자 |
-
checked 예외는 프로그래머가 예외 상황을 처리하지 않을 수 없도록 한다.
-
checked 예외의 과용은 API 사용자를 불편하게 만든다.
-
만일 API 사용자가 해당 예외 사항에 대해 ignore 와 같은 방식 이외에 해결방법이 없다면,
unchecked 에러를 사용하는 게 더 적합하다.
-
checked 예외를 unchecked 예외로 바꾸는 한 가지 방법은, 해당 예외를 발생시키는 메소드를 두 개의 메소드로 쪼개는 것이다.
그 중 첫번째 메소드에서는 예외가 생겼는지를 나타내는 boolean 값을 반환하게 한다.
예를 들면..
try{
obj.action(args);
} catch( TheCheckedException e ){
// 예외처리
}
->
if ( obj.actionPermitted( args ) ){
obj.action( args );
} else{
// 예외처리
}
단, 이와 같은 변형은 multi thread 에서 사용하면 주의를 해야 하는데,
obj.actionPermitted 와 obj.action 사이에 상태 변경이 있을 수 있기 때문이다.
반응형
'프로그래밍 놀이터 > 디자인 패턴, 리펙토링' 카테고리의 다른 글
[Effective Java] 하위 계층의 예외 처리를 신중하게 하자. (0) | 2017.02.27 |
---|---|
[Effective Java] 표준 예외를 사용하자 (0) | 2017.02.24 |
[Effective Java] 복구 가능 상황에서는 checked 예외를 사용하고, 런타임 예외는 프로그램 에러에 사용하자. (0) | 2017.02.21 |
[Effective Java] 예외 상황에서만 예외를 사용하자. (0) | 2017.02.20 |
[Effective Java] 보편화된 작명 규칙을 따르자. (0) | 2017.02.17 |
댓글