본문 바로가기
프로그래밍 놀이터/디자인 패턴, 리펙토링

[Effective Java] checked 예외의 불필요한 사용을 피하자

by 돼지왕 왕돼지 2017. 2. 23.
반응형

 [Effective Java] checked 예외의 불필요한 사용을 피하자


Action, actionpermitted, api 사용자, boolean, checked exception, checked 예외, Effective JAVA, ignore, multi thread, unchecked, unchecked 에러, [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 사이에 상태 변경이 있을 수 있기 때문이다.





반응형

댓글