Community

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

← Go back
10. TIL (2022.03.04)
#clean_code
2년 전
427

10. TIL (2022.03.04)

오늘 미션

7장. 오류 처리

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

  • 어떤 면에서 try 블록은 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. _p132

  • 먼저 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다. 그러면 자연스럽게 try 블록의 트랜잭션 범위부터 구현하게 되므로 범위내에서 트랜잭션 본질을 유지하기 쉬워진다. _p133

  • 외부 API를 감싸 독자적인 예외를 던지고, 코드 위에 처리기를 정의해 중단된 계산을 처리한다. 대게는 멋진 처리 방식이지만, 때로는 중단이 적합하지 않은 때도 있다. _p137

  • 오류 처리를 논하는 장이라면 우리가 흔히 저지르는 바람에 오류를 유발하는 행위도 언급해야 한다고 생각한다. 그 중 첫째가 null을 번환하는 습관이다. _p139

  • 메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체를 반환한다. _p139

  • 깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다. _p142

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

  • 회사에서 예약시스템의 API 호출문에 오류 처리를 할 때, 몇가지 예상치 못한 오류를 주먹구구식으로 if ... else if ... 같이 예외처리를 하고 프로젝트를 마무리 지었던 게 생각났다. 지금 생각하면 그 외에도 많은 부분이 이불킥할만한 이야기이긴 하지만, null 값으로 반환해 체크하는 습관.. 이라는 구절을 보고 너무 뜨끔했다. 오류 처리를 프로그램 논리와 독자적으로 분리하면 가독성을 높이고 유지보수성도 높아진다.

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

  • try-catch-finally