토비의 스프링 정리 프로젝트 #4.3 정리

Jake Seo·2021년 8월 7일
0

토비의 스프링

목록 보기
26/29

정리

바람직한 예외처리 방법을 살펴보았다. 예외 전환, 예외 감싸기가 핵심이다. JDBC 예외의 단점은 대부분의 예외가 복구 불가능함에도 불구하고 SQLException이라는 뭉뚱그린 체크 예외를 뿌려준다는 것이었는데, 스프링은 데이터 액세스 기술에서 SQLException을 의미있는 런타임 예외로 바꾸는 방식으로 해당 단점을 해결하고 있었다. 이 장에서 살펴본 주요 내용은 다음과 같다.

  • 예외를 잡아서 아무런 조치도 취하지 않거나 throws를 남발하는 것은 위험하다.
  • 예외는 복구하거나 예외처리 오브젝트로 의도적으로 전달하거나 적절한 예외로 전환해야 한다.
  • 좀 더 의미 있는 예외로 변경하거나, 불필요한 catch/throws를 피하기 위해 런타임 예외로 포장하는 두가지 방법의 예외 전환이 있다.
  • 복구할 수 없는 예외는 가능한 한 빨리 런타임 예외로 전환하는 것이 바람직하다.
  • 애플리케이션의 로직을 담기 위한 예외는 체크 예외로 만든다.
  • JDBC의 SQLException은 대부분 복구할 수 없는 예외이므로 런타임 예외로 포장해야 한다.
  • SQLException의 에러 코드는 DB에 종속되기 때문에 DB에 독립적인 예외로 전환될 필요가 있다.
  • 스프링은 DataAccessException을 통해 DB에 독립적으로 적용 가능한 추상화된 런타임 예외 계층을 제공한다.
  • DAO를 데이터 액세스 기술에서 독립시키려면 인터페이스 도입과 런타임 예외 전환, 기술에 독립적인 추상화된 예외로 전환이 필요하다.
profile
풀스택 웹개발자로 일하고 있는 Jake Seo입니다. 주로 Jake Seo라는 닉네임을 많이 씁니다. 프론트엔드: Javascript, React 백엔드: Spring Framework에 관심이 있습니다.

0개의 댓글