Обработка исключительных ситуаций при загрузке (ошибка) для служб RESTful - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть следующее RESTful Services method:

@PostMapping("/ajouterNewField")
public String ajouterField(@Valid @ModelAttribute("field") Fields field, Model model) throws IOException {  

    fieldDao.save(field);
    // SOME CODE 
    return displayListeChamps( model);
}

Метод работает нормально, и мой вопрос заключается в том, как обработать любую ошибку (база данных не подключена ...) или каждую проблему, которая может возникнуть во времяисполнение этого RESTful Services method.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы можете использовать @ControllerAdvice Обратитесь к приведенному ниже коду

@ControllerAdvice
public String NyExceptionHandlerAdvice {
    private final Logger logger = ...;

    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
    @ExceptionHandler({MyRunTimeException.class})
    public void handleMyRunTimeException(Exception e) {
        logger.error("Exception : ", e);
    }
    return MY_ERROR_STRING;
}

Наилучшая практика: вы можете сделать так, чтобы ваш код генерировал исключения RunTimeExceptions и обрабатывал их все вместе или по отдельности в методах-обработчиках, подобных handleMyRunTimeExceptionвыше.

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

0 голосов
/ 11 сентября 2018

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

public class FooController{

    //  ...
    @ExceptionHandler({ CustomException1.class, CustomException2.class })
    public void handleException() {
    //
    }
}

Вот хорошая статья об этом: https://www.baeldung.com/exception-handling-for-rest-with-spring

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...