'자바 예외처리'에 해당되는 글 1건

  1. 2011.06.30 Java 예외처리를 위한 규칙들

Rules of JAVA Exception

by Junseok Oh

 

1.     간단한 기능을 하는 메소드는 굳이 예외를 발생시키지 않고, C와 유사하게 boolean 형 또는 에러코드를 의미하는 int 형을 반환한다. (하지만 에러코드를 정의하는 게 비효율적일 수 있다.)

2.     boolean/int 반환 메소드에서 Exception이 발생 시, error stack을 출력하고 해당 Exception에 해당하는 적절한 값을 리턴한다. (C 스타일)

3.     Exception은 메소드의 기능과 문맥에 맞는 다른 Exception으로 변환/추상화한다.
발생한 Exception에 해당하는 기능이 메소드에 암시되어 있다면, 그대로 bypass한다.

4.     제작하는 메소드가 다른 메소드의 기능을 얇게 추상화한다면, 모든 Exception bypass하게 throws Exception으로 정의할 수 있다.
boolean
을 반환할지, bypass 할 지는 메소드의 기능이 critical한지 trivial한지에 따라 달라진다. 발생할 수 있는 Exception의 종류를 기준으로 삼지 않는다.

5.     파일 입출력을 암시하는 메소드 안에서 발생하는 IOException bypass한다.
하지만 메소드의 문맥에 따라 IOException을 다른 Exception으로 변환한다.

6.     Exception을 던지는 경우, 되도록 Java에 정의되어 있는 표준 Exception을 사용한다.

7.     비록 귀찮더라도 너무 많은 코드를 try문으로 감싸는 것은 지양한다.
비록 귀찮더라도 구체적인 하위 Exception catch한다.

8.     되도록 Exception에 구체적인 에러 메시지를 포함시킨다.

9.     catch 블록에서 할 수 있는 작업은 복구/트레이스/ Exception 발생/종료뿐이다. 그냥 지나치는 것은 지양한다.
finally
블록에서 할 수 있는 작업은 try/catch 블록에서의 작업에 대한 공통 마무리이다. finally 블록에서 메소드를 종료하는 것은 지양한다.
(try/catch
블록에 return이 있다면, finally 블록 코드를 실행 후에 메소드를 종료하기 때문.)

10.   (임시) 부모/자식 예외를 모두 catch하는 블록이 연속되는 경우, 반드시 자식 예외에 해당하는 catch 블록이 앞에 위치해야 한다.


will be continuously updated...
Posted by 배트
,