오류 코드보다 예외를 사용하라
- 오류 코드를 사용하면 호출자 코드가 복잡해진다.
- 반면 예외를 던지게 되면 논리와 오류 처리 코드가 뒤섞이지 않아 깔끔해진다.
Try-Catch-Finally 문부터 작성하라
- try 블록은 트랜잭션과 비슷하다.
- try 블록에서 무슨 일이 생기든 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다.
- try 블록에서 무슨 일이 생기든지 호출자가 기대하는 상태를 정의하기 쉬워진다.
미확인 예외를 사용하라
- 확인된 예외는 OCP를 위반한다. → 대규모 시스템의 경우 최하위 단계에서 최상위 단계까지 연쇄적인 수정 발생
- 확인된 예외는 모든 함수가 최하위 함수에서 던지는 예외를 알아야 하므로 캡슐화가 깨진다.
확인된 예외와 미확인된 예외의 차이는 아래 글에서 확인할 수 있다.
https://yooooooni.tistory.com/53
예외에 의미를 제공하라
- 오류 메시지에 정보를 담아 예외와 함께 던진다.
- 실패한 연산 이름과 실패한 유형도 언급한다.
null을 반환하지 마라
- null을 반환하는 코드는 일거리를 늘릴 뿐만 아니라 호출자에게 문제를 떠넘긴다.
- 한 번이라도 null 확인을 빼먹는다면 애플리케이션이 통제 불능에 빠질 수도 있다.
- 외부 API가 null을 반환한다면 특수 사례 객체를 반환한다. (ex. Collections.emptyList();)
null을 전달하지 마라
- assert문이나 throw문을 사용하면 문제가 발생하지는 않는다.
- 하지만 대다수 프로그래밍 언어는 호출자가 실수로 넘기는 null을 적절히 처리할 방법이 없다.
- 애초에 null을 넘기지 않는 것이 좋다.
'Book > 클린코드' 카테고리의 다른 글
[클린코드] 9장 단위 테스트 (0) | 2023.09.17 |
---|---|
[클린코드] 8장 경계 (0) | 2023.09.16 |
[클린코드] 6장 객체와 자료구조 (0) | 2023.09.14 |
[클린코드] 5장 형식 맞추기 (0) | 2023.09.11 |
[클린코드] 4장 주석 (0) | 2023.09.11 |