ex.getClass (). getCanonicalName () не дает имя класса исключения - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь обработать исключение при загрузке Spring, используя @ControllerAdvice.Я обрабатываю все типы исключений, используя Exception.class и отвечая json.

Когда я добавляю HTTPStatus status в handleAllExceptionMethod() Я получаю следующий ответ, когда null pointer exception is occurs

Но втот ответ JSON, который я ожидаю "error" : "java.lang.NullPointerException", который я выбрасываю из класса обслуживания throw new NullPointerException("Null values are not allowed")

Перед добавлением HTTPStatus status в handleAllExceptionMethod() я получил ожидаемый результат.Я добавил, что в методе получения значения статуса в status подано.

Может кто-нибудь сказать, пожалуйста, почему это происходит так?

@ControllerAdvice
public class RestExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<Object> handleAllExceptionMethod(Exception ex,WebRequest requset,HttpStatus status) {

        ExceptionMessage exceptionMessageObj = new ExceptionMessage();

        exceptionMessageObj.setStatus(status.value());
        exceptionMessageObj.setMessage(ex.getLocalizedMessage());
        exceptionMessageObj.setError(ex.getClass().getCanonicalName());     
        exceptionMessageObj.setPath(((ServletWebRequest) requset).getRequest().getServletPath());

        return new ResponseEntity<>(exceptionMessageObj, new HttpHeaders(),status);     
    }
}

Когда я получаю исключение нулевого указателя Это результат JSON

enter image description here

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