바위타는 두루미

[CleanCode]7.오류처리 본문

카테고리 없음

[CleanCode]7.오류처리

DoRoMii 2022. 3. 3. 23:06
728x90

오류처리 때문에 프로그램의 논리를 이해하기 어렵다면 그것은 깨끗한 코드가 아니다. 

 

-오류코드보다 예외를 사용하라. 

- Try-Catch-Finally 문부터 작성하라 

  강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다. 

- 미확인 예외를 사용하라. 

  확인된 예외는 OCP를 위반한다. 하위단계에서 코드를 변경하면 상위단계 메서드 선언부를 전부 고쳐야한다. 

  아주 중요한 라이브러리를 작성한다면 확인된 예외를 이용해 모든 예외를 잡아야하지만, 일반적인 어플리케이션은 의존성이라는 비용이      매우크다.

- 예외의 의미를 제공하라. 

  -예외를 던질때에는 정보를 담아 예외와 함께 던지자. 

    - 실패한 연산 이름과 실패 유형도 언급한다. 

    - logging을 사용한다면 catch블록에서 오류를 기록하도록 정보를 넘겨준다. 

- 호출자를 고려하여 예외 클래스를 정의하라. 

   - 오류를 분류할때 가장 중요한 관심사는 오류를 잡아내는 방법 

   - 외부라이브러리의 예외를 설정할때  감싸는 class는 매우 유용하다. 

      - 외부 라이브러리에 대한 의존성이 줄어든다. 

      - 예외 클레스가 한개만 있어도 충분한 코드가 많다. 

- 정상흐름을 정의하라 

  예외상황을 처리할 필요가 없도록 클레스나 객체가 예외적인 상황을 캡슐화해서 처리하도록 하면 더 깔끔

- null을 반환하지 마라 

  - null을 반환하면 null체크 누락시 큰 문제가 발생한다. 

  - null을 반환하고 싶다면 예외를 던지거나 특수사례 객체를 반환하도록 하자. 

- null을 전달하지 마라. 

 - null을 전달할 가능성이 있으면 애초에 넘기지 못하도록 정책을 만드는게 나을 수 있다. 

   - exception class를 만든다. 

   - assert를 이용한다. 

 

 

Comments