[Effective Java] 예외는 진짜 예외 상황에만 사용하라.


[Effective Java] 예외는 진짜 예외 상황에만 사용하라.

예외는 진짜 예외 상황에만 사용하라. try { int i = 0; while(true) range[i++].climb()' catch(ArrayIndexOutOfBoundsException e) {} 위 코드는 직관적이지 않다. 무한 루프를 돌다가 배열 끝에 도달하면 ArrayIndexOutOfBoundsException을 발생시킨다. for(Mountain m : range) { m.climb(); } 위와 같이 작성하면 개발자가 이해하기 더 쉬워진다. try ~ catch를 이용해서 예외를 잡을 필요도 없어지고 배열의 끝에 도달했을 때 예외를 발생시켜서 종료할 필요도 없어진다. 또한 위 코드가 성능도 더 좋다. JVM은 배열에 접근할 때마다 경계를 넘지 않는지 검사하는데 일반적인 반복문도 배열 경계에 도달하면 종료한다. try ~ catch를 명시하면 검사를 하는 일이 중복되므로 하나를 생략한 것이다. 위 try ~ catch 문의 문제점은 몇 가지가 있다. 코드를 try ~ ...


#아이템69 #예외 #이펙티브자바 #자바 #자바예외

원문링크 : [Effective Java] 예외는 진짜 예외 상황에만 사용하라.