Springboot/블로그만들기

[Springboot] 블로그 만들기 (13)_Delete 테스트, Exception처리

21종 2023. 11. 24. 21:35

DB

insert test를 하다가 망가진 1번 데이터를 Delete해보자

 

Controller

@DeleteMapping("/dummy/user/{id}")
public String DeleteUser(@PathVariable int id) {
    userRepository.deleteById(id);

    return "삭제되었습니다 Id :  " + id; 
}

 

결과 확인


매우 간단하게 delete 문을 작성할 수 있다.  하지만 이 방법은 조금 위험하다.

만약에 존재하지 않는 값 5를 넣어준다면 ?

 

위와 같이 오류가 발생하게 된다. 

--> Exception (예외) 처리를 해야된다.

@DeleteMapping("/dummy/user/{id}")
public String DeleteUser(@PathVariable int id) {
    try { // try-catch 예외처리문
        userRepository.deleteById(id);

    } catch (EmptyResultDataAccessException e) { 
        return "삭제에 실패하였습니다. 해당 id는 DB에 없습니다.";
    }
    return "삭제되었습니다 Id :  " + id; 
}

 

try-catch 문을 활용하여 예외처리를 한다.

EmptyResultDataAccessException : 값이 없는 오류
귀찮으면 Exception을 써도된다. Exception은 모든 예외처리문의 최고 부모임

 

하지만 어떤 오류가 나와도 "삭제에 실패하였습니다. 해당 id는 DB에 없습니다." 를 반환하기 때문에 

정확한 디버깅을 위해서 어떤 예외처리인지 써주는 편이 좋다.


참고 유튜브 (메타코딩님 강의)

https://youtu.be/vOXgQYX7nok?si=bjk6jUxzAm8rnM0T