클린코드 7장

jiwon·2022년 4월 5일
0

클린코드

목록 보기
7/17
post-thumbnail
post-custom-banner

7장 오류 처리

오류 처리는 중요하다. 하지만 오류 처리 코드로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵다.

오류 코드보다 예외를 사용하라

if 문으로 오류를 하나하나 잡기보다는, try-catch로 묶어서 처리하자

Try-Catch-Finally 문부터 작성하라

예외에서 프로그램 안에다 범위를 정의한다는 사실은 매우 흥미롭다. 어떤 면에서 try 블록은 트랜잭션과 비슷하다.

미확인 예외를 사용하라

아주 중요한 라이브러리를 작성한다면 모든예외를 하나하나 잡아야 하지만...일반적인 애플리케이션은 의존성이라는 비용이 이익보다 크다.

  • 확인된 예외: 컴파일 과정에서 에러가 나므로 무조건 처리하게되어 있는예외
  • 미확인 예외: 개발자가 판단해서 처리하는 예외

예외에 의미를 제공하라

예외를 던질 때는 전후 상황을 충분히 덧붙인다. 그러면 오류가 발생한 원인과 위치를 찾기가 쉬워진다. catch 블록에서 오류를 기록하도록 충분한 정보를 넘겨주는 건 덤.

호출자를 고려해 예외 클래스를 정의하라

오류는 유형으로도 구분할 수 있고, 위치로도 구분할 수 있다.. 하지만 프로그래머에게 가장 중요한 관심사는 오류를 잡아내는 방법이 되어야 한다. try-catch로 묶을때 오류 잡는 방법을 고려하면 코드를 간결하게 짤 수 있다.

정상 흐름을 정의하라

클라이언트 코드가 예외적인 상황을 처리할 필요가 없도록, 클래스나 객체가 예외적인 상황을 캡슐화해서 처리하자.

ex 식비를 비용으로 청구했다면/ 식비를 비용으로 청구하지 않았다면 < 상황 나누는 것은 try-catch 보다는 클래스나 객체에서 처리

null을 반환하지 마라

메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체를 반환하자.(ex: null 반환할 바엔 차라리 빈 리스트를 반환) nullpointerException 등의 에러로 고통받을 확률이 줄어든다.

null을 전달하지 마라

null을 반환하는 것도 나쁘지만 전달하는 건 더 나쁘다. 대다수 프로그래밍 언어는 호출자가 실수로 넘기는 null을 적절히 처리할 방법이 마땅치 않다. 그렇다면 애초에 null을 넘기지 못하도록 해야한다.

profile
개발 공부합니다. 파이팅!
post-custom-banner

0개의 댓글