SpringBoot异常处理机制

xiaoxiao2021-02-28  6

//模拟个异常 public class UserNotExistException extends RuntimeException { public UserNotExistException() { super("用户名不存在!!!"); } } //异常处理类 @ControllerAdvice public class MyExceptionHandler { //不会自动适应浏览器客户端返回的都是json /*@ResponseBody @ExceptionHandler(UserNotExistException.class) public Map<String,Object> HandlerException(Exception e , HttpServletRequest request){ Map<String,Object> map = new HashMap<>(); map.put("code","user.notexist"); map.put("msg",e.getMessage()); map.put("msgd",e.getMessage()); return map; }*/ //自适应浏览器和客户端      @ExceptionHandler(UserNotExistException.class) public String handlerException(Exception e , HttpServletRequest request){ Map<String,Object> map = new HashMap<>(); map.put("code","user.notexist"); map.put("msg",e.getMessage()); // map.put("msgd",e.getMessage()); request.setAttribute("javax.servlet.error.status_code",500); request.setAttribute("ext",map); return "forward:/error"; }     //添加自己的异常属性 import org.springframework.boot.web.servlet.error.DefaultErrorAttributes @Component public class MyErrorAttributes extends DefaultErrorAttributes { @Override public Map<String, Object> getErrorAttributes(WebRequest webRequest, boolean includeStackTrace) { Map<String, Object> map = super.getErrorAttributes(webRequest, includeStackTrace); map.put("company","atui"); //我们的异常处理器携带的数据 Map<String,Object> ext = (Map<String, Object>) webRequest.getAttribute("ext", 0); map.put("ext",ext); return map; } 页面取值 <h1>status:[[${status}]]</h1> <h2>timestamp:[[${timestamp}]]</h2> <h2>exception:[[${exception}]]</h2> <h2>message:[[${message}]]</h2> <h2>ext:[[${ext.code}]]</h2> <h2>ext:[[${ext.message}]]</h2>  
转载请注明原文地址: https://www.6miu.com/read-2000131.html

最新回复(0)