개발자 99% 커뮤니티에서 수다 떨어요!
오늘 미션
7장. 오류 처리
책에서 기억하고 싶은 내용을 써보세요.
어떤 면에서 try 블록은 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. _p132
먼저 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다. 그러면 자연스럽게 try 블록의 트랜잭션 범위부터 구현하게 되므로 범위내에서 트랜잭션 본질을 유지하기 쉬워진다. _p133
외부 API를 감싸 독자적인 예외를 던지고, 코드 위에 처리기를 정의해 중단된 계산을 처리한다. 대게는 멋진 처리 방식이지만, 때로는 중단이 적합하지 않은 때도 있다. _p137
오류 처리를 논하는 장이라면 우리가 흔히 저지르는 바람에 오류를 유발하는 행위도 언급해야 한다고 생각한다. 그 중 첫째가 null을 번환하는 습관이다. _p139
메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체를 반환한다. _p139
깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다. _p142
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
회사에서 예약시스템의 API 호출문에 오류 처리를 할 때, 몇가지 예상치 못한 오류를 주먹구구식으로 if ... else if ... 같이 예외처리를 하고 프로젝트를 마무리 지었던 게 생각났다. 지금 생각하면 그 외에도 많은 부분이 이불킥할만한 이야기이긴 하지만, null 값으로 반환해 체크하는 습관.. 이라는 구절을 보고 너무 뜨끔했다. 오류 처리를 프로그램 논리와 독자적으로 분리하면 가독성을 높이고 유지보수성도 높아진다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
try-catch-finally