7장 : 오류 처리

Y·2023년 9월 1일
0

클린 코드

목록 보기
7/14

*<클린 코드>를 참고하여 작성한 글입니다.

오류 처리

  • 오류 코드보다 예외를 사용하라
    • 오류가 발생하면 예외를 던지는 편이 낫다. 그러면 호출자 코드가 깔끔해진다.
  • Try-Catch-Finally 문부터 작성하라
    • 예외에서 프로그램 안에다 범위를 정의한다 는 사실은 매우 흥미롭다. try블록은 어떤 면에서 트랜잭션과 비슷하다. try블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 하므로, try-catch-finally문으로 시작하는게 낫다.
  • 미확인 예외를 사용하라
    • 확인된 예외는 OCP를 위반한다. 때로는 확인된 예외도 유용하다. 아주 중요한 라이브러리 작성시 그러나, 일반적 애플리케이션은 의존성이라는 비용이 이익보다 크다.
  • 예외에 의미를 제공하라
  • 호출자를 고려해 예외 클래스릊 어의하라
    • 애플리케이션에서 오류를 정의할 떄 프로그래머에게 가장 중요한 관심사는 오류를 잡아내는 방법 이 되어야 한다.
    • 감싸기 기법은 유용하다. 특히 외부 API를 사용할 떄는 감싸기 기법이 최선이다.
    • 예외 클래스가 하나만 있어도 충분한 코드가 많다. 예외 클래스에 포함된 정보로 오류를 구분해도 괜찮은 경우가 그렇다. 한 예외는 잡아내고 다른 예외는 무시해도 괜찮은 경우라면 여러 예외 클래스를 사용한다.
  • 정상 흐름을 정의하라
    • 특수 사례 패턴 : 클래스를 마들거나 객체를 조작해 특수 사례를 처리하는 방식으로, 클라이언트 코드가 예외적인 상황을 처리할 필요가 없어진다.
  • null을 반환하지 마라
    • 이는 일거리를 늘릴 뿐만 아니라 호출자에게 문제를 떠넘기다.
    • null을 전달하는 방식은 더 나쁘다. 정상적인 인수로 null을 기대하는 api가 아니라면 메서드로 null을 전달하는 코드는 최대한 피한다. 애초에 null을 넘기지 못하도록 할 것.
  • 깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리해 독자적 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다. 오류 처리를 프로그램 논리와 분리하면 독립적 추론이 가능해지며 코드 유지보수성도 크게 높아진다.
profile
개발자, 학생

0개의 댓글