cef异常处理_SpringBoot异常处理
1. 配置全局异常和自定义异常
异常处理类(包括全局和自定义)
@RestControllerAdvice
public class CustomExtHandler {
/**
* 处理全局异常
* 返回json数据,由前端去判断加载什么页面(推荐)
*/
@ExceptionHandler(value = Exception.class)
Object handleException(Exception e, HttpServletRequest request) {
log.error("url [{}], msg [{}]", request.getRequestURL(), e.getMessage());
Map map = new HashMap<>(3);
map.put("code", 500);
map.put("msg", e.getMessage());
map.put("url", request.getRequestURL());
return map;
}
/**
* 处理自定义异常
* 返回json数据,由前端去判断加载什么页面(推荐)
*/
@ExceptionHandler(value = MyException.class)
Object handleMyException(MyException e, HttpServletRequest request) {
log.error("url [{}], msg [{}]", request.getRequestURL(), e.getMessage());
Map map = new HashMap<>(3);
map.put("code", e.getCode());
map.put("msg", e.getMsg());
map.put("url", request.getRequestURL());
return map;
}
}
自定义异常类
@Getter
@Setter
public class MyException extends RuntimeException {
//状态码
private String code;
//错误信息
private String msg;
public MyException(String code, String msg) {
this.code = code;
this.msg = msg;
}
}
2.返回自定义页面
创建自定义页面位置,位置如下图:
Error Pageerror.html位置
引入thymeleaf依赖
org.springframework.boot
spring-boot-starter-thymeleaf
异常处理类
@RestControllerAdvice
public class CustomExtHandler {
/**
* 处理自定义异常
* 进行页面跳转
*/
@ExceptionHandler(value = MyException.class)
Object handleMyException(MyException e, HttpServletRequest request) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("error.html");
modelAndView.addObject("msg", e.getMessage());
return modelAndView;
}
}
1. 配置全局异常和自定义异常 异常处理类(包括全局和自定义) @RestControllerAdvice public class CustomExtHandler { /** * 处理全局异常 * 返回json数据,由前端去判断加载什么页面(推荐) */ @ExceptionHandler(value = Exception.class) Object handleException(Exception e, HttpServletRequest request) { log.error("url [{}], msg [{}]", request.getRequestURL(), e.getMessage()); Map map = new HashMap<>(3); map.put("code", 500); map.put("msg", e.getMessage()); map.put("url", request.getRequestURL()); return map; } /** * 处理自定义异常 * 返回json数据,由前端去判断加载什么页面(推荐) */ @ExceptionHandler(value = MyException.class) Object handleMyException(MyException e, HttpServletRequest request) { log.error("url [{}], msg [{}]", request.getRequestURL(), e.getMessage()); Map map = new HashMap<>(3); map.put("code", e.getCode()); map.put("msg", e.getMsg()); map.put("url", request.getRequestURL()); return map; } } 自定义异常类 @Getter @Setter public class MyException extends RuntimeException { //状态码 private String code; //错误信息 private String msg; public MyException(String code, String msg) { this.code = code; this.msg = msg; } } 2.返回自定义页面 创建自定义页面位置,位置如下图:Error Page error.html位置 引入thymeleaf依赖 org.springframework.boot spring-boot-starter-thymeleaf 异常处理类 @RestControllerAdvice public class CustomExtHandler { /** * 处理自定义异常 * 进行页面跳转 */ @ExceptionHandler(value = MyException.class) Object handleMyException(MyException e, HttpServletRequest request) { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("error.html"); modelAndView.addObject("msg", e.getMessage()); return modelAndView; } }