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

posted @ 2021-04-28 17:27  疯子110  阅读(1063)  评论(0编辑  收藏  举报