Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL(22.03.03~04)
#clean_code
2년 전
674


TIL (Today I Learned)

2022.03.03~04

오늘 읽은 범위

7장. 오류 처리

책에서 기억하고 싶은 내용을 써보세요.

  • 오류 코드보다 예외를 사용하라 (p.130)

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

  • 확인된 OCP(Open Closed Principle)을 위반한다. (p.134)

    • 메서드에서 확인된 예외를 던졌는데 catch 블록(예외가 발생했을 경우)이 세 단계 위에 있다면 그 사이 메서드 모두가 선언부에 해당 예외를 정의해야 한다.

  • 예외에 의미를 제공하라 (p.135)

    • 예외를 던질 때는 전후 상황을 충분히 덧붙인다.

    • 오류 메시지에 정보를 담아 예외와 함께 던진다. 실패한 연산 이름과 실패 유형도 언급한다.

  • null을 반환하는 코드는 일거리를 늘릴 뿐만 아니라 호출자에게 문제를 떠넘긴다. (p.139)

  • 대다수 프로그래밍 언어는 호출자가 실수로 넘기는 null을 적절히 처리하는 방법이 없다. 그렇다면 애초에 null을 넘기지 못하도록 금지하는 정책이 합리적이다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 오늘은 클린 코드를 작성하는 데 있어서 예외 처리를 어떻게 해야 하는지에 대해 읽어보았다.

  • 보통 기능을 표현하는 함수를 작성할 때, 전달받는 입력이나 인수 값에 있어 원하는 값이나 형식이 전달되지 않는 경우가 있다는 것을 알고 있다. 예를 들면, 현재 많이 쓰이는 계정 인증에서 PW의 형식이 영문자와 숫자, 특수문자 만이 허용이 되는 것처럼 말이다. 입력 뿐만 아니더라도 프로그램 내에서 정보가 서로서로 전달되는 데 있어서도 원치 않는 값이나 형식으로 값이 전달되고 그로 인해 발생하는 오류도 많이 경험해보았다.

  • 위와 같은 경우를 대비해 예외 처리 구문이 잘 사용되는 법이란 걸 알고 있지만, 어떻게 깔끔하게 정할 수 있는가에 대해선 특별히 기준이 없었던 것 같다. 이번에도 이 클린 코드 책을 읽음으로서 새로운 방법이나 기준을 더해볼 수 있어 좋은 내용이었던 것 같다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • OCP

  • 특수 사례 패턴