바위타는 두루미
[CleanCode]7.오류처리 본문
오류처리 때문에 프로그램의 논리를 이해하기 어렵다면 그것은 깨끗한 코드가 아니다.
-오류코드보다 예외를 사용하라.
- Try-Catch-Finally 문부터 작성하라
강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다.
- 미확인 예외를 사용하라.
확인된 예외는 OCP를 위반한다. 하위단계에서 코드를 변경하면 상위단계 메서드 선언부를 전부 고쳐야한다.
아주 중요한 라이브러리를 작성한다면 확인된 예외를 이용해 모든 예외를 잡아야하지만, 일반적인 어플리케이션은 의존성이라는 비용이 매우크다.
- 예외의 의미를 제공하라.
-예외를 던질때에는 정보를 담아 예외와 함께 던지자.
- 실패한 연산 이름과 실패 유형도 언급한다.
- logging을 사용한다면 catch블록에서 오류를 기록하도록 정보를 넘겨준다.
- 호출자를 고려하여 예외 클래스를 정의하라.
- 오류를 분류할때 가장 중요한 관심사는 오류를 잡아내는 방법
- 외부라이브러리의 예외를 설정할때 감싸는 class는 매우 유용하다.
- 외부 라이브러리에 대한 의존성이 줄어든다.
- 예외 클레스가 한개만 있어도 충분한 코드가 많다.
- 정상흐름을 정의하라
예외상황을 처리할 필요가 없도록 클레스나 객체가 예외적인 상황을 캡슐화해서 처리하도록 하면 더 깔끔
- null을 반환하지 마라
- null을 반환하면 null체크 누락시 큰 문제가 발생한다.
- null을 반환하고 싶다면 예외를 던지거나 특수사례 객체를 반환하도록 하자.
- null을 전달하지 마라.
- null을 전달할 가능성이 있으면 애초에 넘기지 못하도록 정책을 만드는게 나을 수 있다.
- exception class를 만든다.
- assert를 이용한다.