DataAccessException

갓김치·2021년 2월 11일
1

최종프로젝트

목록 보기
14/19

throws SQLException이 의미없는 이유

SQLException

  • mybatis이전에는 RuntimeException으로 바꿔치기해서 throw 하지도 않았었음
  • Spring으로 넘어오면서 직접적으로 처리한 적 없음
    • runtime 으로 바꾼적도없음, DataAccessException으로 바뀌기때문

DataAccessException

  • throws를 안넣어도 SQLException이 발생하면...
  1. SQLException이 발생하면 mybatis 내부에서 Persistence Exception으로 매핑
  2. spring orm이 DataAccessException으로 포장
  3. DAE는 RuntimeException 이기때문에 서비스로 넘김
  4. 서비스에서 컨트롤러로 넘김
  5. 컨트롤러에서 throws가 없어도 핸들러어댑터에도 넘김
  6. 핸들러어댑터가 위빙되어있는 어드바이스가있는지 확인해서 위빙된곳으로 넘겨서 advice로 오는것
    6.1 하지만 try-catch로 DataAccessException을 잡아준다면 컨트롤러단에서 처리가 됨
profile
갈 길이 멀다

0개의 댓글