背景
自己定义的异常,遇到错误抛出,但是发现在实际情况中,并未抛出自己的异常信息和code,这使我非常的懊恼,经过一番调整研究,终于发现了是由于自己的粗心导致,特此记录一下
方案
- 由于公司使用了私服,导致代码里使用的是私服里的全局异常类,并把这个类写在了一个不起眼的配置类下,用以使得全局异常生效
- 但是,这个私服上的全局异常类,是很久之前的了,里面包含的异常,也就是@ExceptionHandler包含的类是有限的,并且没有我自己写的那个异常
- 所以就自己写一个子类,继承该类,然后,写自己或程序中,没有包含的异常,并且让该子类,写到配置类下生效
public class GExceptionHandler extends GlobalExceptionHandler {
/**
* 统一处理GpAppException异常
*
* @param e
* @return
*/
@org.springframework.web.bind.annotation.ExceptionHandler(GpAppException.class)
@ResponseBody
public ResponseVo gpAppException(GpAppException e) {
return ResponseVo.failVo(e.getFailureCause());
}
@org.springframework.web.bind.annotation.ExceptionHandler(GpOauthLoginException.class)
@ResponseBody
public ResponseVo gpOauthLoginException(GpOauthLoginException e) {
return ResponseVo.failVo(e.getFailureCause());
}
}