• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

PersistenceException은 런타임 예외이지 않나요 ?

23.04.15 14:30 작성 조회수 427

1

스크린샷 2023-04-15 오후 2.28.56.png

PersistenceException이 RuntimeException을 상속 받았던데 이러면 service 계층에서 처리 할 의무가 없으니 DataAcessException으로 변환하지 않아도 JPA예외에 의존하는 것이 아니지 않나요 ?

답변 1

답변을 작성해보세요.

1

y2gcoder님의 프로필

y2gcoder

2023.04.16

안녕하세요, hjemsti 님. 공식 서포터즈 y2gcoder 입니다.

런타임 예외는 명시적으로 예외처리(예외를 던지거나 try-catch)를 해주지 않아도 되지만, 결국 어딘가에서는 해당 예외를 처리해주게 되어있습니다. 서비스 계층까지 JPA 관련 예외인 PersistenceException으로 넘어오는 것은 결국 그곳에서 처리하지 않더라도 결국 어딘가에서 처리하게 되고, 이 때 JPA에 의존적이게 됩니다. DB 1편에서 학습하셨겠지만 스프링 예외 추상화를 통해 데이터 접근 계층에서 발생한 예외를 추상화해서 처리하면 결국 서비스 계층부터는 데이터 접근 기술에 대해 신경쓸 필요가 없게 되니 좀 더 특정 접근 기술에 의존하지 않고 유연한 처리가 가능하게 되는 것입니다. 해당 부분이 이해가 되지 않으신다면 DB 1편의 6. 스프링과 문제해결 - 예외 처리, 반복 챕터를 반복해서 학습해주시길 권해드립니다 :)

감사합니다.