ReactMasters / study

스터디 기록
1 stars 0 forks source link

Clean code 7장 오류 처리 #45

Open jordan-choi opened 1 year ago

jordan-choi commented 1 year ago

깨끗한 코드와 오류 처리의 연관성

여기저기 흩어진 오류 처리 코드 때문에 실제 코드가 하는 일을 파악하기가 어렵다면 깨끗한 코드라 부르기 어렵다.

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

try-catch-finally 문부터 작성하라

미확인(unchecked) 예외를 사용하라

예외에 의미를 제공하라

예외를 던질 때 오류 메세지에 전후 상황을 덧붙여 오류가 발생한 원인과 위치를 찾기 쉽게 하자.

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

정상 흐름을 정의하라

오류를 유발하는 행위

  1. null을 반환하지 마라. 예외를 던지거나 특수 사례 객체를 반환해라.

    • null을 반환하는 코드는 호출자에게 문제를 떠넘긴다.
    • null 확인이 누락된 문제? ❌. null 확인이 너무 많아 문제 ⭕️.
    // ❌ BAD
    // 쉴 새 없이 null을 반환하는 냄새나는 코드
    public void registerItem(Item item) {
        if(item != null) {
            ItemRegistry registry = peristentStore.getItemRegistry();
            if(registry != null) {
                Item existing = registry.getItem(item.getID());
                if(existing != null) {
                    if(existing.getBillingPeriod().hasRetailowner()) {
                        existing.register(item);
                    }
                }
            }
        }
    }
  2. null을 전달하지 마라. 1보다 더 나쁘다.

    • 정상적인 인수로 null을 기대하는 API가 아니라면 메서드로 null을 전달하는 코드는 최대한 피한다.
    • 대다수 프로그래밍 언어는 호출자가 실수로 넘기는 null을 적절히 처리하는 방법이 없다.
    • 인수로 null을 넘기지 못하도록 금지하는 정책을 따르면 부주의한 실수를 저지를 확률도 작아진다.