@ControlerAdvice не работает при весенней загрузке (последняя версия) - PullRequest
1 голос
/ 01 марта 2020

Я пытаюсь перехватить пользовательское исключение с помощью аннотации @ControllerAdvice.

Это код:

@ControllerAdvice(basePackages = "{com.ciro.cotroller}")
@RestController
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {

    @ExceptionHandler(value = {TodoNotFoundException.class})
    public final ResponseEntity<ExceptionResponse> todoNotFoundException(TodoNotFoundException exception){
        ExceptionResponse exceptionResponse = new ExceptionResponse(exception.getMessage(), "custom details");
        return new ResponseEntity<ExceptionResponse>(exceptionResponse,HttpStatus.NOT_FOUND);
    }
}

Это мое исключение:

package com.ciro.exception;

public class TodoNotFoundException extends RuntimeException {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public TodoNotFoundException() {
        throw new RuntimeException("An custom error is raised!");
    }
}

Но объект по умолчанию ответ возвращается.

1 Ответ

1 голос
/ 02 марта 2020

Я изменил код таким образом, и все работает нормально.

public TodoNotFoundException() {
    super();
}

Первая ошибка была в конструкторе исключения. Мне нужно вызывать супер метод, а не выбрасывать исключения во время выполнения.

@ControllerAdvice("com.ciro.cotroller")

Второй - базовый пакет.

...