ex.getClass()。getCanonicalName()没有给出异常类名

时间:2018-06-07 09:53:31

标签: java spring spring-boot exception-handling

我正在尝试使用@ControllerAdvice处理Spring启动中的异常。我使用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);     
    }
}

当我得到Null指针异常时这是JSON结果

enter image description here

0 个答案:

没有答案