TIL (Today I Learned)
2022.05.05
오늘 읽은 범위
7장. 오류 처리
책에서 기억하고 싶은 내용
오류 처리는 중요하다. 하지만 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다. - 130페이지
예외가 발생할 코드를 짤 때는 try-catch-finally문으로 시작하는 편이 낫다. - 132페이지
미확인예외를 사용하라.
확인된 예외는 OCP(Open Closed Principle)를 위반한다. 메서드에서 확인된 예외를 던졌는데 catch 블록이 세 단계 위에 있다면 그 사이 메서드 모두가 선언부에 해당 예외를 정의해야 한다. 즉, 하위 단계에서 코드를 변경하면 상위 단계 메서드 선언부를 전부 고쳐야 한다는 말이다. - 134페이지
예외에 의미를 제공하라.
예외를 던질 때는 전후 상황을 충분히 덧붙인다. 오류 메시지에 정보를 담아 예외와 함께 던진다. - 135페이지
null을 반환하지 마라
메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체를 반환한다. - 139페이지
null을 전달하지 마라
정상적인 인수로 null을 기대하는 API가 아니라면 메서드로 null을 전달하는 코드는 최대한 피한다. - 140페이지
결론
깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다. 오류 처리를 프로그램 논리와 분리하면 독립적인 추론이 가능해지며 코드 유지보수성도 크게 높아진다. - 142페이지
오늘 읽은 소감은? 떠오르는 생각
Nodejs를 대부분 사용하고 자바는 유지보수에만 조금 사용해봐서 그런지 자바의 오류 처리 내용은 크게 와닿지가 않는다. 다음에 자바를 사용해서 개발해야할 일이 있으면 그 때 자세히 살펴보기로 하자.
일단 오류 코드를 사용하지 않고 try-catch-finally문을 사용해서 예외를 발생시키는 코드를 작성하는 것이 중요함을 알게 되었다. null을 반환하고 그 것을 체크하는 코드를 작성하는 것을 지양하는 것이 좋겠다.
댓글