我使用的是Spring Boot,并使用AbstractErrorController
编写了一个全局异常处理程序。我如何在控制器中获取异常对象?
@Controller
public class MyCustomErrorController extends AbstractErrorController {
public MyCustomErrorController(ErrorAttributes errorAttributes) {
super(errorAttributes);
}
@RequestMapping("/error")
public void handleError(HttpServletRequest req, HttpServletResponse resp) {
Exception e = ...; // how to get exception here
log.error(e);
displayError(req, resp, e);
}
@Override
public String getErrorPath() {
return "/error";
}
}
答案 0 :(得分:0)
处理程序拦截由控制器生成或重新抛出的异常。它没有端点,因为它通常对应用程序中的所有控制器执行此操作。处理程序指示应用程序服务器在抛出特定的Exception时返回特定的错误。
这里是一个例子:
user["emailVerified"]
在此示例中,ApiError是一种将错误报告给UI的数据结构。该代码的作用是拦截异常“ ResourceNotFoundException”,创建适当的错误数据传输对象,设置响应HttpStatus和标头,然后返回错误。