SpringBoot统一异常处理以及获取ThrowableException中的detailMessage属性;
一、新建一个统一异常处理类;如下
@ControllerAdvice
public class ExceptionHandlerConfig {
/**
* 全局异常捕捉处理
* @param ex
* @return
*/
@ResponseBody
@ExceptionHandler(Exception.class)
public Map errorHandler(Exception ex) {
Map map = new HashMap();
map.put("code", 100);
map.put("msg",ex.getMessage());
return map;
}
}
@ControllerAdvice是一个@Component,用于定义@ExceptionHandler,@InitBinder和@ModelAttribute方法,适用于所有使用@RequestMapping方法。
@ResponseBody 返回json数据
@ExceptionHandler(Exception.class) springboot统一异常处理注解;
二、如果是自定义异常的话,查看debug信息,发现自己输出的异常信息在ThrowableException中的detailMessage属性,
使用
ex.getCause().getMessage() 方法可以获取该属性;
完整代码;
@ControllerAdvice
public class ExceptionHandlerConfig {
/**
* 全局异常捕捉处理
* @param ex
* @return
*/
@ResponseBody
@ExceptionHandler(Exception.class)
public Map errorHandler(Exception ex) {
Map map = new HashMap();
map.put("code", 100);
if(ex.getCause().getMessage().equals("AuthorityFail")){
map.put("msg","你没有权限,请联系管理员");
}else {
map.put("msg",ex.getMessage());
}
return map;
}
}
————————————————
版权声明:本文为CSDN博主「蘇夏」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31807569/article/details/88672156