깨끗한 코드와 오류 처리의 중요성
- 오류 처리는 프로그램의 필수 요소이며, 입력 오류나 디바이스 실패 등 예기치 못한 상황을 다루기 위해 필수적이다.
- 깨끗한 코드는 오류 처리를 적절히 분리하여 프로그램의 논리를 쉽게 이해할 수 있도록 해야 한다.
예외를 사용한 오류 처리
- 예외를 지원하지 않는 언어는 오류 플래그나 오류 코드를 반환하는 방법을 사용했다.
- 예외를 사용하면 호출자 코드가 깔끔해지고, 오류 처리와 프로그램 논리를 분리할 수 있다.
- try-catch-finally 구조를 사용해 예외 발생 시 프로그램 상태를 일관성 있게 유지한다.
미확인(unchecked) 예외 사용 권장
- 확인된(checked) 예외는 OCP(Open Closed Principle)를 위반하며, 캡슐화를 깨뜨릴 수 있다.
- 대부분의 경우 미확인(unchecked) 예외를 사용하는 것이 좋다.
예외 처리 기법
- 의미 있는 예외를 던져 오류의 원인과 위치를 파악하기 쉽게 한다.
- 외부 라이브러리를 사용할 때는 감싸기(wrapper) 클래스를 사용해 의존성을 줄이고 예외 처리를 간소화한다.
- 특수 사례 패턴(Special Case Pattern)을 사용해 클라이언트 코드가 예외 상황을 직접 처리하지 않도록 한다.
null을 반환하지 말라
- null을 반환하는 코드는 호출자에게 문제를 떠넘기며, NullPointerException을 유발할 수 있다.
- null 대신 예외를 던지거나 빈 객체를 반환하는 것이 좋다.
null을 전달하지 말라
- 메서드로 null을 전달하면 실행 오류가 발생할 수 있다.
- null을 전달하지 않도록 금지하는 정책을 세우는 것이 좋다.