클린코드 2022-02-02의 기록
clean-code nomad-coders
DAY13
- 오늘 읽은 범위 : 오류 처리 ~p136
책에서 기억하고 싶은 내용을 써보세요
- 깨끗한 코드와 오류 처리는 확실히 연관성이 있다
- 상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다.-여기저기 흩어진 오류 처리 코드 때문에 실제 코드가 하는 일을 파악하기가 거의 불가능하다는 의미다-
- 오류 처리는 중요하지만 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다
- 오류코드를 반환하기 보다는 예외처리를 해라!1
- 오류코드를 반환하면 호출자 코드가 복잡해진다. 예외처리를 사용한다면 보기도 좋아지고 코드품질도 나아진다.
- 예외가 발생할 코드에는 try-catch-finally 문으로 시작하는게 좋다.
- try 블록에서 무슨 일이 생기던지 호출자가 기대하는 상태를 정의하기 쉬워진다.2
- 예외를 일으키는 테스트케이스를 작성 후 그 테스트를 통과하게 코드를 작성하는 방법을 사용하라
- 미확인예외를 사용하라
- 확인예외는 OCP를 위반한다
- 특정 메서드에서 확인된 예외를 던졌는데 catch문이 세단계(메서드) 위에 있다면 상위 단계 메서드 모두를 고쳐야 한다.
- 일반적인 어플리케이션은 의존성이 확인된 예외가 가져오는 이익보다 크다
- 예외에 의미를 제공하라-예외를 던질 때는 전후 상황을 충분이 덧붙히자-오류가 발생한 원인과 위치를 찾기 쉬워진다-
- 호출자를 고려해 예외 클래스를 정의하라-애플리케이션에서 오류를 정의할 때 프로그래머에게 가장 중요한 관심사는 오류를 잡아내는 방법이 되어야 한다.3
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 코드를 짤 때 오류처리를 하면 코드가 더러워진다고 생각을 했습니다. 그래서 웬만하면 클래스에서 생길 예외는 확인된 예외로 던지는 습관을 많이 들였습니다. 하지만 이 확인된 예외는 OCP를 위반한다는 것을 알게되었으며, try-catch-finally문을을 가지고도 깨끗한 코드를 짤 수 있다는 것을 이번장에서 배웠습니다.
- 오류에 있어서도 추상화와 중복을 고려한다는 점이 정말 흥미로웠습니다. 특히 135쪽부터 시작되는 코드에서 어떻게 하면 코드에서 나오는 다양한 예외들을 하나의 예외로 묶어서 처리하고 하나의 추상화로 정의하여 호출자에게 보여주는지를 보며, 우리는 저자다라는 이 책의 첫부분이 어떤 의미인지 되새기는 장이 되었습니다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요
- -
세줄 요약
- 오류처리는 중요하다! -하지만 프로그램 논리를 이해하기 어렵게 만드는 오류 처리 코드는 깨끗한 코드라 부를 수 없다-
- 예외가 발생할 코드에서는 try-catch-finally문 부터 작성해라
- 호출자를 고려해 예외를 생성하라-예외가 어디서 생성됐는지 뒤져봐야 한다면 좋은 오류 처리가 아니다!