Community

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

← Go back
CleanCodeTIL[7] = "오류 처리"
#clean_code
2년 전
550
2

오늘 TIL 3줄 요약

  • 깨끗한 코드는 일기도 좋아야 하지만 안정성도 높아야한다.

  • 오류처리를 프로그램 논리와 분리하면

  • 독립적인 추론이 가능해지며 코드 유지 보수성도 크게 높아진다.

TIL (Today I Learned) 날짜

2022. 05. 06

오늘 읽은 범위

7장. 오류 처리

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

  • 뭔가 잘못될 가능성은 늘 존재한다.(p130)

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

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

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

    • 확인된 예외는 OCP를 위반한다.(p134)

  • 예외에 의미를 제공하라(p135)

  • 오류를 정의할 때 프로그래머에게 가장 중요한 관심사는 오류를 잡아내는 방법이 되어야 한다.(p135)

  • 오류를 처리하는 방식은(오류를 일으킨 원인과 무관하게) 비교적 일정하다. 1) 오류를 기록한다. 2) 프로그램을 계속 수행해도 좋은지 확인한다. (p136)

  • 실제로 외부 API를 사용할 때는 감싸기 기법이 최선이다.(p137)

  • 특수 사례 패턴이라 부른다. 클래스를 만들거나 객체를 조작해 특수 사례를 처리하는 방식이다. 그러면 클라이언트 코드가 예외적인 상황을 처리할 필요가 없어진다.(p138)

  • null을 반환하지 마라(p138)

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

  • null을 전달하지 마라(p140)

    • 애초에 null을 넘기지 못하도록 금지하는 정책이 합리적이다.(p142)

  • 깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다.(p142)

    • 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다.(p142)

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

  • null을 반환하거나 null이 입력 되었을 때 조건문으로 처리하는 방법을 자주 사용하였다. 항상 잘 짜여진거 같아도 이런 처리가 필요하다 생각했을 때 쓰게 되면 지저분해 보였는데 특수 사례 패턴이나 null을 인자 입력으로 넘기지 못하도록 금지하는 정책 등 대선배님의 경험을 통한 해결책이 감사했다.

  • 감싸기 기법도 인상 깊었다. 외부 클래스를 사용할 때 외부클래스에서 발생하는 오류를 바로 사용 메서드에서 처리하는 식으로 짜왔는데 외부 API를 감싸는 객체로 만들어 내부에서 처리한다면 확실히 프로그램 논리만 남게 되어 더 가독성 좋은 코드를 짤 수 있을 거 같았다.

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

  • p132의 "예외에서 프로그램 안에다 범위를 정의한다는 사실"이 무슨 의미인지 잘 모르겠다. 그저 try-catch문으로 예외가 발생하는 범위를 정하는 것을 의미하는 것일까?

  • try-catch가 어떻게 동작하여 처리되는지 궁금해졌다. try문 안에서 오류가 발생했을 때 프로그램의 내부 동작이 궁금하다. throw문이 실행되면 바로 catch문으로 점프하는 것일까? 함수 호출처럼 동작하게 될까? 아니면 if문 else문 처럼 동작할까?

오늘 읽은 다른사람의 TIL

2 comments