Community

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

← Go back
TIL 7장. 오류 처리
#clean_code
2년 전
454
1

오늘 TIL 3줄 요약

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

  • null을 반환하기 마라

  • null을 전달하지 마라

TIL (Today I Learned) 날짜

2022. 03. 05

오늘 읽은 범위

7장. 오류 처리

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

  • 오류가 발생하면 예외를 던지는 편이 낫다. 그러면 호출자 코드가 더 깔끔해진다. 논리와 오류 처리 코드와 뒤섞이지 않으니까. (p131)

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

  • 애플리케이션이 로깅 기능을 사용한다면 catch 블록에서 오류를 기록하도록 충분한 정보를 넘겨준다. (p135)

  • 외부 API를 감싸면 외부 라이브러리와 프로그램 사이에서 의존성이 크게 줄어든다. 나중에 다른 라이브러리로 갈아타도 비용이 적다. (p137)

  • 흔히 예외 클래스가 하나만 있어도 충분한 코드가 많다. 예외 클래스에 포함된 정보로 오류를 구분해도 괜찮은 경우가 그렇다. (p137)

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

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

  • 메서드에서 null을 반환하는 방식도 나쁘지만 메서드로 null을 전달하는 방식은 더 나쁘다. 정상적인 인수로 null을 기대하는 API가 아니라면 메서드로 null을 전달하는 코드는 최대한 피한다. (p140)

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

  • null exception은 당연히 해야할 null 체크를 놓친거라고 생각했는데 아예 체크를 안하도록 개발했어야 했다니

  • exception은 발생시키기 부담스러워서 항상 null 체크하고 분기탔었는데... exception이 발생해서는 안되는 구문이라는 선입견을 깨야겠다.

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

  • 자바의 확인된 예외가 뭐지

  • assert문은 어떻게 쓰는걸까? null이 들어오면 어떻게 되는걸까?

오늘 읽은 다른사람의 TIL

1 comment