Spring Boot에서 예외를 처리하는 가장 좋은 방법은 무엇입니까?

H 아투 코 랄라

Spring Boot에서 애플리케이션을 개발 중입니다. 예외를 처리하는 가장 좋은 방법이 무엇인지 궁금합니다. 그래서 다음은 내 코드입니다.

ExceptionHandler.java나는 @ControllerAdvice. 사용하기에 가장 좋은 것은 무엇입니까? @ControllerAdvice또는 @RestControllerAdvice?

@ControllerAdvice
public class ExceptionHandler {

    @ExceptionHandler(NotFoundException.class)
    public ResponseEntity<ErrorResponse> notFound(NotFoundException notFoundException) {
        ErrorResponse errorResponse = new ErrorResponse(HttpStatus.NOT_FOUND, notFoundException.getMessage());
        return new ResponseEntity<ErrorResponse>(errorResponse, HttpStatus.NOT_FOUND);
    }
}

@Service다음과 같이 서비스 계층 구현했습니다 .

@Override
public User update(User newUser) throws NotFoundException {
    Optional<User> user = userRepository.findById(newUser.getId());

    if (!user.isPresent()) throw new NotFoundException("Record Not Found!");

    return userRepository.save(newUser);
}

에서 Controller.java코드는 다음과 같다,

@PutMapping
public User update(@RequestBody User user) {
    User updatedUser = userService.update(user);

    if (updatedUser == null) throw new SomeOtherException("Exception while Updating!");
    
    return updatedUser;
}

그래서 제 질문은

위의 접근 방식이 나쁜가요? 서비스 계층에서 예외를 throw해도 괜찮 @controlleradvice습니까? 아니면 컨트롤러에만 던져야합니까? 예외를 처리하기위한 모범 사례를 찾고 있습니다. 누구든지 나를 도울 수 있습니까? 미리 감사드립니다.

나쿨 고얄

당신이 사용한 방식은 완벽합니다.

마찬가지로 @ ControllerAdvice / @ RestControllerAdvice가 전역에 걸쳐 핸들 컨트롤러 예외로 사용된다 [흐름]가.

@Service layel에서도 예외를 던질 수 있습니다. [그것도 똑같습니다] ControllerAdvice가 그것을 잡을 것입니다.

자신 만의 방식으로 예외를 사용자 지정할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 시나리오에서 예외를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

봄 amqp SimpleMessageListenerContainer에서 예외를 처리하는 가장 좋은 전략은 무엇입니까?

분류에서Dev

MongoDB 및 Spring Boot-문서를 업데이트하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Completable 선물. 비즈니스 "예외"를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Laravel에서 빈 웅변 쿼리를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Flutter에서 화면 크기를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

vuejs에서 Http Exception 오류 메시지를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Flask에서 웹훅 응답 시간 초과를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Rails Form Objects에서 날짜를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

C ++에서 대용량 데이터를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

SqlServer에서 교착 상태를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

CouchDB Map / Reduce JavaScript 함수에서 Eclipse 오류를 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Rails 앱에서 자연어 처리를 수행하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Spring MVC 또는 Spring-Boot에서 다양한 유형의 ResponseEntity를 반환하는 가장 좋은 방법은 무엇입니까

분류에서Dev

Spring REST 예외 처리기에서 응답 텍스트를 설정하는 방법은 무엇입니까?

분류에서Dev

catch에서 예외 유형을 제외하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

AutoCloseable에서 발생한 예외를 처리 (또는 억제)하는 권장 방법은 무엇입니까?

분류에서Dev

Spring Applicationcontext를 닫는 가장 좋은 방법은 무엇입니까?

분류에서Dev

함수 호출에서 예외가 발생하면 처리를 계속하는 방법은 무엇입니까?

분류에서Dev

PHP 5.4에서 메서드가 던진 예외를 처리하는 방법은 무엇입니까?

분류에서Dev

이 PowerShell 코드에서 예외 처리를 추가하는 방법은 무엇입니까?

분류에서Dev

Google에서 정의를 얻는 가장 좋은 방법은 무엇입니까?

분류에서Dev

UITableView에서 "Pull to Refresh"를 얻는 가장 좋은 방법은 무엇입니까?

분류에서Dev

UITableView에서 "Pull to Refresh"를 얻는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Oracle 쿼리에서 일관된 순서를 보장하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Java에서 Spring temlateInput 예외를 해결하는 방법은 무엇입니까?

분류에서Dev

pyspark에서 예외를 처리하는 방법은 무엇입니까?

분류에서Dev

C #에서 특정 예외를 처리하는 방법은 무엇입니까?

분류에서Dev

linqXml에서 처리 예외를 수정하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    이 시나리오에서 예외를 처리하는 가장 좋은 방법은 무엇입니까?

  2. 2

    봄 amqp SimpleMessageListenerContainer에서 예외를 처리하는 가장 좋은 전략은 무엇입니까?

  3. 3

    MongoDB 및 Spring Boot-문서를 업데이트하는 가장 좋은 방법은 무엇입니까?

  4. 4

    Completable 선물. 비즈니스 "예외"를 처리하는 가장 좋은 방법은 무엇입니까?

  5. 5

    Laravel에서 빈 웅변 쿼리를 처리하는 가장 좋은 방법은 무엇입니까?

  6. 6

    Flutter에서 화면 크기를 처리하는 가장 좋은 방법은 무엇입니까?

  7. 7

    vuejs에서 Http Exception 오류 메시지를 처리하는 가장 좋은 방법은 무엇입니까?

  8. 8

    Flask에서 웹훅 응답 시간 초과를 처리하는 가장 좋은 방법은 무엇입니까?

  9. 9

    Rails Form Objects에서 날짜를 처리하는 가장 좋은 방법은 무엇입니까?

  10. 10

    C ++에서 대용량 데이터를 처리하는 가장 좋은 방법은 무엇입니까?

  11. 11

    SqlServer에서 교착 상태를 처리하는 가장 좋은 방법은 무엇입니까?

  12. 12

    CouchDB Map / Reduce JavaScript 함수에서 Eclipse 오류를 처리하는 가장 좋은 방법은 무엇입니까?

  13. 13

    Rails 앱에서 자연어 처리를 수행하는 가장 좋은 방법은 무엇입니까?

  14. 14

    Spring MVC 또는 Spring-Boot에서 다양한 유형의 ResponseEntity를 반환하는 가장 좋은 방법은 무엇입니까

  15. 15

    Spring REST 예외 처리기에서 응답 텍스트를 설정하는 방법은 무엇입니까?

  16. 16

    catch에서 예외 유형을 제외하는 가장 좋은 방법은 무엇입니까?

  17. 17

    AutoCloseable에서 발생한 예외를 처리 (또는 억제)하는 권장 방법은 무엇입니까?

  18. 18

    Spring Applicationcontext를 닫는 가장 좋은 방법은 무엇입니까?

  19. 19

    함수 호출에서 예외가 발생하면 처리를 계속하는 방법은 무엇입니까?

  20. 20

    PHP 5.4에서 메서드가 던진 예외를 처리하는 방법은 무엇입니까?

  21. 21

    이 PowerShell 코드에서 예외 처리를 추가하는 방법은 무엇입니까?

  22. 22

    Google에서 정의를 얻는 가장 좋은 방법은 무엇입니까?

  23. 23

    UITableView에서 "Pull to Refresh"를 얻는 가장 좋은 방법은 무엇입니까?

  24. 24

    UITableView에서 "Pull to Refresh"를 얻는 가장 좋은 방법은 무엇입니까?

  25. 25

    Oracle 쿼리에서 일관된 순서를 보장하는 가장 좋은 방법은 무엇입니까?

  26. 26

    Java에서 Spring temlateInput 예외를 해결하는 방법은 무엇입니까?

  27. 27

    pyspark에서 예외를 처리하는 방법은 무엇입니까?

  28. 28

    C #에서 특정 예외를 처리하는 방법은 무엇입니까?

  29. 29

    linqXml에서 처리 예외를 수정하는 방법은 무엇입니까?

뜨겁다태그

보관