开发工具:STS
前言:
在前后端分离的项目中,当前端向后端请求资源失败时,想知道具体的错误原因,给用户予以提示。
但是,在springboot中返回内容是固定的。并不适合我们前端进行分析。
所以,就研究了下如何定制错误返回内容。
在开发之前,首先要明白springboot的异常处理机制。
其实很简单,不过就是发现异常、解析异常、匹配异常要返回的内容、返回异常。
下面,我们来做一个简单实例:
我捕获的是shiro权限认证失败的异常:
1 package com.xm.shiro.rbac; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 import org.apache.shiro.authz.UnauthorizedException; 7 import org.springframework.web.bind.annotation.ControllerAdvice; 8 import org.springframework.web.bind.annotation.ExceptionHandler; 9 import org.springframework.web.bind.annotation.ResponseBody; 10 11 @ControllerAdvice 12 public class MyExceptionHandler { 13 14 @ResponseBody 15 @ExceptionHandler(UnauthorizedException.class) 16 public Map<String , Object> unauthorizedException(Exception e) { 17 Map<String, Object> map = new HashMap<>(); 18 map.put("code", 0); 19 map.put("massage", e.getMessage()); 20 return map; 21 } 22 23 }
其实,就这么简单。