当前位置:网站首页>8. Unified exception handling (controller notifies @ControllerAdvice global configuration class, @ExceptionHandler handles exceptions uniformly)
8. Unified exception handling (controller notifies @ControllerAdvice global configuration class, @ExceptionHandler handles exceptions uniformly)
2022-07-31 02:39:00 【一个偷笑】

- SpringBoot设计,如果出现错误404或500,Automatically call under a specific pathhtml页面(Paths and names are specific)./templates/error/404.html、/templates/error/500.html.This page is automatically called when there is an error in the program.
- But the error has async request error,Also want to log at the same time.Then use the unified processing method,即全局配置.使用HomeController,Add a request to get the error page,手动重定向路径.
@RequestMapping(path = "/error", method = RequestMethod.GET)
public String getErrorPage() {
return "/error/500";
}
在Controller下新建adviceNotification configuration package,新建ExceptionAdvice.用到两个注解:@ControllerAdvice,@ExceptionHandler.
- 是Controller全局配置类,Not to anyControllerdo the configuration again,can be done uniformlyController的全局配置.@ControllerAdvice用来修饰类.
- 异常处理方案**@ExceptionHandler**、绑定数据方案**@ModelAttribute**、绑定参数方案**@DataBinder**. They are both used to decorate methods.
- 这里只演示,统一处理异常(@ExceptionHandler)
// 是Controller全局配置类,Not to anyControllerdo the configuration again,can be done uniformlyController的全局配置[email protected]用来修饰类.
// 异常处理方案@ExceptionHandler、绑定数据方案@ModelAttribute、绑定参数方案@DataBinder. They are both used to decorate methods.
// 这里只演示,统一处理异常(@ExceptionHandler)
@ControllerAdvice(annotations = Controller.class) // 限定注解@Controller,Otherwise the component scans allbean
public class ExceptionAdvice {
private static final Logger logger = LoggerFactory.getLogger(ExceptionAdvice.class);
@ExceptionHandler({
Exception.class})// 处理哪些异常?Exception是所有异常的父类,All exceptions are handled
// 有异常controllerwill passException
public void handleException(Exception e, HttpServletRequest request, HttpServletResponse response) throws IOException {
// 记录日志
logger.error("服务器发生异常:" + e.getMessage());//Unusual summary
for (StackTraceElement element : e.getStackTrace()) {
//Record the information of all stacks of exceptions
logger.error(element.toString());
}
// 给浏览器响应
// Depends what the request is,Want the server to return the web pagehtml/异步请求JSON(xml).Get it from the request header.
String xRequestedWith = request.getHeader("x-requested-with");
if ("XMLHttpRequest".equals(xRequestedWith)) {
// 异步请求
response.setContentType("application/plain;charset=utf-8");
PrintWriter writer = response.getWriter();// 输出流
writer.write(CommunityUtil.getJSONString(1,"服务器异常!"));// 输出JSON字符串
}else{
// 请求html,重定向到错误页面
response.sendRedirect(request.getContextPath() + "/error");
}
}
}
Click on the Unconfigured page to appear404,并记录日志:
点击消息,浏览器请求页面,服务端出错500,并记录日志:
发送私信,异步请求,服务端出错,返回JSON字符串,并记录日志:
边栏推荐
- cudaMemcpy study notes
- AI software development process in medical imaging field
- Drools基本介绍,入门案例,基本语法
- print task sorting js od huawei
- SQL注入 Less46(order by后的注入+rand()布尔盲注)
- AtCoder Beginner Contest 261 部分题解
- Word/Excel fixed table size, when filling in the content, the table does not change with the cell content
- Pythagorean tuple od js
- The modification is not properly placed in the sandbox, causing Apple compatibility issues
- 221. Largest Square
猜你喜欢

Basic introduction to ShardingJDBC

Real-time image acquisition based on FPGA

The principle of complete replication of virtual machines (cloud computing)

tcp框架需要解决的问题

Teach you how to configure Jenkins automated email notifications

mmdetection trains a model related command

multiplayer-hlap 包有问题,无法升级的解决方案

怎样做好一个创业公司CTO?

汉源高科8路HDMI综合多业务高清视频光端机8路HDMI视频+8路双向音频+8路485数据+8路E1+32路电话+4路千兆物理隔离网络

字体压缩神器font-spider的使用
随机推荐
Face detection based on opencv
完整复制虚拟机原理(云计算)
Draw Your Cards
php 网站的多语言设置(IP地址区分国内国外)
Manchester City confuses fans with smart scarf that detects emotions
The modification is not properly placed in the sandbox, causing Apple compatibility issues
4、敏感词过滤(前缀树)
基于FPGA的图像实时采集
Drools basic introduction, introductory case, basic syntax
Android's webview cache related knowledge collection
【CV项目调试】CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT问题
User interaction + formatted output
Refuse to work overtime, a productivity tool set developed by programmers
静态路由解析(最长掩码匹配原则+主备路由)
验证整数输入
图解lower_bound&upper_bound
AtCoder Beginner Contest 261 Partial Solution
静态路由+PAT+静态NAT(讲解+实验)
STP选举(步骤+案列)详解
MPPT solar charge controller data collection - through the gateway acquisition capacity battery SOC battery voltage, wi-fi