개발자 99% 커뮤니티에서 수다 떨어요!
🗓️ TIL (Today I Learned)
2024.02.06 ~2024.02.07
🔖 오늘 읽은 범위
7장. 오류 처리
🤟 3줄 요약
- 깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다.
- 예외 발생 가능성 고려하여 코드 작성, 로깅 및 호출자 고려
- null 반환 및 전달을 최대한 피하고, 예외 또는 특수 객체 사용, 깨끗하고 안정적인 코드 구현
👨💻 책에서 기억하고 싶은 내용.
뭔가 잘못될 가능성은 늘 존재한다. 뭔가 잘못되면 바로 잡을 책임은 프로그래머에게 있다. (p130)
오류 코드보다 예외를 사용하라 (p130)
- 오류가 발생하면 예외를 던지는 편이 낫다.
- 논리가 오류 처리 코드와 뒤섞이지 않으니까 호출자 코드가 더 깔끔해진다.
Try-Catch-Finally 문부터 작성하라 (p132)
- 예외가 발생할 코드를 짤 때는 Try-Catch-Finally 문으로 시작.
- try 블록에서 무슨 일이 생기든지 호출자가 기대하는 상태를 정의하기 쉬워진다.
예외에 의미를 제공하라 (p135)
- 예외를 던질 때 전후 상황을 충분히 덧붙인다.
호출자를 고려해 예외 클래스를 정의하라 (p135)
- 외부 API를 사용할 때는 감싸기 기법이 최선이다. 외부 API를 감싸면 외부 라이브러리와 프로그램 사이에서 의존성이 크게 줄어든다.
- 정상 흐름을 정의하라 (p137)
- 예외가 논리를 따라가기 어렵게 만들었다면 클래스를 만들거나 객체를 조작해 특수 사례를 처리한다. 그러면 클라이언트 코드가 예외적인 상황을 처리할 필요가 없어진다.
null을 반환하지 마라 (p138)
- 메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체를 반환한다.
null을 전달하지 마라 (p140)
- null을 넘기지 못하도록 금지하는 정책이 합리적이다.
깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. (p142)
💭 오늘 읽은 소감은? 떠오르는 생각
- 뭔가 잘못되면 바로 잡을 책임은 프로그래머에게 있다.
- 예외 활용과 null 제거는 익숙한 내용인데, 특수 사례 패턴? 용어가 어렵다.
- 특수 사례 패턴 (Special Case Pattern)
- 일반적인 로직과 다르게 처리해야 하는 특수한 경우들을 별도로 분리하여 클래스를 만들거나 객체를 조작해 특수 사례를 처리. 코드의 가독성과 유지 관리성을 향상시킴
☕공부법 공유
