Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
7장 예외처리
#clean_code
2년 전
1,174

오늘 TIL 3줄 요약

  • 깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다.

  • 예외처리가 반드시 필요하지 않다면 예외처리를 제거하여 간결하게 만들어야 한다.

  • 오류처리를 프로그램 논리와 분리하면 독립적인 추론이 가능해지며 코드 유지보수성도 높아진다.

TIL (Today I Learned) 날짜

2022. 05. 05

오늘 읽은 범위

7장. 예외 처리

책에서 기억하고 싶은 내용을 써보세요.

  • 오류코드보다는 예외를 사용해라.

  • Try-Catch-Finally 문부터 작성하라. 먼저 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다.

  • 미확인unchecked 예외를 사용하라. throws 경로에 위치하 는 모든 함수가 최하위 함수에서 던지는 예외를 알아야 하므로 캡슐화가 깨진다. 오류를 원거리에서 처리하기 위해 예외를 사용한다는 사실을 감안한다면 이처럼 확인된 예외가 캡슐화를 깨버리는 현상은 참으로 유감스럽다.

  • 예외를 던질 때는 전후 상황을 충분히 덧붙인다. 그러면 오류가 발생한 원인과 위치를 찾기가 쉬워진다.

  • 메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예 외를 던지거나 특수 사례 객체를 반환한다. 다행스럽게 자바에는 Collections.emptyList()가 있어 미리 정의된 읽기 전용 리 스트를 반환한다. 우리 목적에 적합한 리스트다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 메서드가 null을 반환할 경우 항상 null을 체크해주는 방식을 사용했었는데 아예 메서드에서 null일 경우 빈 배열을 반환해주는 식으로 필요없는 코드를 줄이는 방법이 있었다 라는 걸 깨닫게 되었다.

  • 또한 메서드의 인자로 null를 전달하지 않을 방법, 이것 또한 고민해봐야겠다.

  • 반드시 예외처리가 필요한 것이 아니라면 그 부분을 제외하고 간결하게 만드는 예시가 가장 인상깊었다.

  • 깨끗한 코드도 중요하지만 오류가 나지 않은 안전한 코드를 써야 한다가 이 장의 핵심인 것 같다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • unchecked exception?

RuntimeException의 하위 클래스들을 의미. 이것은 체크 예외와는 달리 에러 처리를 강제하지 않는다. 말 그대로 실행 중에(runtime) 발생할 수 있는 예외를 의미.

임의의 예외 클래스를 만들어 예외 처리를 하는 경우 try-catch로 묶어줄 필요가 있을 경우에만 Exception 클래스를 확장하고,

일반적으로 실행시 예외를 처리할 수 있는 경우에는 RuntimeException 클래스를 확장해 Unchecked Exception을 사용하는 것이 좋다.

참조

https://devlog-wjdrbs96.tistory.com/351