모든 생성 EXCEPTION의 부모는 EXCPETION임을 기억하고 .
서비스 단에서 실제 DB를 저장하기 전에, REQUEST를 받아서 이를 DEVELOPER 객체에 넣기도 전에, DATA VALIDATION을 수행한다. 이때 단순한 EXCEPTION 만으로는 검증될 수 없기 때문에, 사용자 설정 EXCEPTION을 생성한다.
해당 예시. 물론, DMakerException을 객체로 따로 만들어주어 이를 준비해야한다.
RuntimeException을 상속받는 exception. <즉, 예외로 사용되는 객체>
ERRORCODE객체와 MESSAGE를 내부 변수로 가지고 있으며, ERRORCDE를 받아 해당 ERRORCDE가 CODE만 있을때는 그 ERRORCODE와 기본 MESSAGE를. 그렇지 않을땐 모두를 대입한다.
SUPER는 EXCPETION까지 올라가서 MESSAGE를 받아오는 의미로 사용하였다.
orElseThrow의 활용 예시
해당 method는 Eventservice part의 create Event이다.
만약에 받은 eventdto가 없다면, 바로 false를 return한다.
그렇지 않다면 , placerepository(jparepoistory를 상속받았다)에서 id로 dto에 맞는 id를 찾는다.
만약에 없다면 우리가 지정했던 GENERALEXCEPTION을 발생킨다.
그 과정에서 EXCEPTION이 발생하면, DATA 접근 도중에 발생했다는 ERRORMESSAGE를 확인하고, EXCEPTION을 그냥 일반 EXCEPTION말고 우리가 생성한 EXCEPTION으로 던진다!
'백엔드 > 스프링+boot' 카테고리의 다른 글
예외 처리 (1) | 2023.12.29 |
---|---|
스프링. 상세히 데이터 관리및 조회 (2) | 2023.12.28 |
Validation (0) | 2023.12.28 |
Transaction, Transactional (0) | 2023.12.28 |
H2 database , DB활용 / Entity 추가 / Repository,service 간단 복습 (0) | 2023.12.27 |