如果在请求过程中出现问题,它将RestController抛出json如下内容:
{
"timestamp": 1510417124782,
"status": 500,
"error": "Internal Server Error",
"exception": "com.netflix.hystrix.exception.HystrixRuntimeException",
"message": "ApplicationRepository#save(Application) failed and no fallback available.",
"path": "/application"
}
为此序列化了哪个类对象?我能以某种方式影响这个对象并在运行时输入这个对象的状态和消息吗?
我抽了教程和码头,这就是我所理解的:
默认情况下
json,我们看到的是类的一个对象DefaultErrorAttributes。设置您自己的处理程序
rest- 错误并不难。为此,您需要了解以下事项:ResponseEntityExceptionHandler- 一个实际捕获异常并决定需要返回给用户的类。它有许多以类型handle+异常名称命名的方法。ControllerAdvice- 向一组控制器提供“建议”的注释。事实上,这对他们来说是一种钩子。默认情况下,注释会影响所有控制器,但其参数中有用于指定特定组的选项。ExceptionHandler- 用于捕获某些错误的注释。因此,为了捕获一些异常,处理它并向用户提供一些东西,您需要创建一个带有注释的类
ControllerAdvice并从ResponseEntityExceptionHandler. 然后重新定义所需的异常。大概是这样的:
如果我们想处理我们自己的异常或不是来自类的其他特定异常
ResponseEntityExceptionHandler,我们可以使用这样的构造: