07. 에러 처리
오류 처리 코드로 인해 논리가 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다.
오류를 처리하는 기법과 고려사항 몇 가지 소개
#
오류코드보단 예외 사용- 오류코드는 호출자 코드가 복잡해짐
- 예외를 사용하면 메인 로직과 오류 처리가 분리되어 코드 품질이 좋아짐
#
try-catch-finally 문부터 작성- 예외가 발생할 코드에선 try-catch-finally 로 구성
- TDD, 먼저 강제로 예외를 일으키는 TC를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장
#
미확인(unchecked) 예외를 사용- 확인된 예외는 수정이 발생한 상위 클래스들의 수정을 유발하므로 OCP 를 위반한 것!
#
예외에 의미 제공- 예외 정의 시, 오류 메시지 함께 정의
#
호출자를 고려해 예외 클래스를 정의- 오류 정의의 최대 관심사는 오류를 잡아내는 방법
- Wrapper 클래스로 외부 api를 호출하는 부분을 감싸 구현
- 구현할 프로그램에 더 적합한 방식으로 감쌀 수 있음
- 외부라이브러리와 프로그램 상이 의존성이 줄어듦
- 테스트 용이
#
정상 흐름 정의#
특수 사례 패턴으로 정상흐름 재정의패턴 적용 전
특수 사례 패턴 적용 후
#
null- null 반환 X
- null 반환 보단 예외을 발생시키거나, 특수사례 객체를 반환
- 빈 리스트를 반환할 경우,
Collections.emptyList()
반환
- null 파라미터 전달 X
#
결론오류처리와 프로그램 논리를 분리해 따로따로 구현한다면 튼튼하고 깨끗한 코드를 작성할 수 있다