1. 예외는 오직 예외 상황에만 사용할 것

예외를 제어 흐름용으로 사용하지 말자


예외를 제어 흐름용으로 사용한 예시

try {
	int i = 0;
	while(true) { mountainList[i++].climb(); }
} catch(ArrayIndexOutOfBoundsException e) {...}
for(Mountain m : mountainList) { m.climb(); }

코드를 짤 때는 꼼수를 쓰지 말자

2. 상태 검사 메소드 / 옵셔널 / 특정 값

상태 의존적 메소드와 상태 검사 메소드