7장 오류 처리 오류 코드보다 예외를 사용하라 논리와 오류 처리 코드가 뒤섞이지 않는다. 오류 코드 사용시 새로운 오류를 추가하면 코드 전체를 바꿔야 한다 Try-Catch-Finally 문부터 작성하라 프로그램에 트랜잭션 범위를 정의하는 것이다. 즉, 호출자가 기대하는 상태를 작성한다. 예외에 의미를 제공하라 오류 발생 원인과 위치 찾기가 쉬워진다. 예외 전후 상황을 충분히 기술해라 By 에러 메세지 정상 흐름을 정의하라 예외가 논리의 흐름을 해치면 안된다. 호출자를 고려해 예외 클래스를 정의해라 오류를 분류하는 것보다 잡는 것이 더 중요하다 미확인 예외를 사용하라 확인된 예외란? 컴파일러 단계에서 확인되는 예외로 책에서는 크게 의미가 없다고 봄 미확인 예외란? 런타임 단계에서 확인되는 예외 IndexOutOfBoundsException, NullPointerException 등이 있음 예외를 던지는 메소드가 수정되면 상 위 메소드들도 전부 수정돼야함. 결과적으로 캡슐화가 깨지는 현상이 발생한다. 추가적으로 의존성이 증가한다. NULL을 반환/전달하지 마라 null을 확인하고 놓친 것을 찾는 시간과 비용이 너무 크다 특수 사례 객체나 감싸기 메서드를 통한 예외 던지는 방식을 쓰자 의도한 경우가 아니라면 null을 넘긴 것에 대한 근본적인 해결책이 없다 null을 넘기지 못하게 금지하는 것이 제일 효율적이다 위의 경우 어디가 null로 인한 에러인지 한번에 파악하기 어렵다.