[클린 코드 읽고 정리해두고 다시 보기] 오류 처리

inho ha·2024년 9월 20일
0

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

  • 오류 코드를 반환하면 함수를 호출한 즉시 오류를 확인해야 하기 때문에 조건문이 중첩된다.

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

  • try 블록은 트랜잭션과 비슷하다.
  • try 블록의 트랜잭션 범위부터 구현한다면 트랜잭션 본질을 유지하기 쉬워진다.

unchecked 예외를 사용하라

  • checked 예외는 Open Closed Principle를 위반한다. (메서드에서 checked 예외를 던졌는데 catch 블록이 세 단계 위에 있다면 그 사이 메서드 모두가 해당 예외를 정의해야한다.)
  • 아주 중요한 라이브러리의 경우에는 유용할 수 있으나 일반적인 애플리케이션은 의존성이라는 비용이 checked 예외의 이익보다 크다.

예외에 의미를 제공하라

  • catch 블록에서 오류를 기록할 수 있도록 충분한 정보를 넘겨줘라

호출자를 고려해 예외 클래스를 정의하라

  • 외부 API를 사용할 때 클래스를 생성해 감싸고, 클래스에서 외부 API의 예외를 변환하여 던져라.

정상 흐름을 정의하라

  • 정상적인 여러 케이스들에 대해 다른 처리를 하기 위해서는 예외를 던지는 대신 클래스나 객체에서 캡슐화하여 처리하라.

null을 반환하지 마라

  • 오류 코드를 반환하는 것과 마찬가지로 null을 반환하면 호출자가 즉시 이를 확인해야하고 조건문이 중첩된다.

null을 전달하지 마라

  • 메서드로 null을 전달하면 메서드에서 null을 체크해야하고, 예외로 던진다면 호출자에게 예외 처리가 추가된다.
profile
inho ha / ian(swatchon) / iha(42seoul)

0개의 댓글