Skip to content

Latest commit

 

History

History
47 lines (37 loc) · 1.96 KB

chapter 7.md

File metadata and controls

47 lines (37 loc) · 1.96 KB

7장 오류 처리

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

  • 논리와 오류 처리 코드가 뒤섞이지 않는다.
  • 오류 코드 사용시 새로운 오류를 추가하면 코드 전체를 바꿔야 한다

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

  • 프로그램에 트랜잭션 범위를 정의하는 것이다.
  • 즉, 호출자가 기대하는 상태를 작성한다.

예외에 의미를 제공하라

  • 오류 발생 원인과 위치 찾기가 쉬워진다.
  • 예외 전후 상황을 충분히 기술해라 By 에러 메세지

정상 흐름을 정의하라

  • 예외가 논리의 흐름을 해치면 안된다.

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

  • 오류를 분류하는 것보다 잡는 것이 더 중요하다

미확인 예외를 사용하라

  • 확인된 예외란?
    • 컴파일러 단계에서 확인되는 예외로 책에서는 크게 의미가 없다고 봄
  • 미확인 예외란?
    • 런타임 단계에서 확인되는 예외
    • IndexOutOfBoundsException, NullPointerException 등이 있음
  • 예외를 던지는 메소드가 수정되면 상 위 메소드들도 전부 수정돼야함.
  • 결과적으로 캡슐화가 깨지는 현상이 발생한다.
  • 추가적으로 의존성이 증가한다.

image

NULL을 반환/전달하지 마라

  • null을 확인하고 놓친 것을 찾는 시간과 비용이 너무 크다
  • 특수 사례 객체나 감싸기 메서드를 통한 예외 던지는 방식을 쓰자
  • 의도한 경우가 아니라면 null을 넘긴 것에 대한 근본적인 해결책이 없다
  • null을 넘기지 못하게 금지하는 것이 제일 효율적이다

image image 위의 경우 어디가 null로 인한 에러인지 한번에 파악하기 어렵다.