spring 公用异常处理

1. 采用spring boot注解方式,如果采用swagger的话会导致swagger不可用

  1.1  spring 配置如下

#出现错误时, 直接抛出异常
spring.mvc.throw-exception-if-no-handler-found=true
#不要为我们工程中的资源文件建立映射
spring.resources.add-mappings=false
如果设置为ture,当访问不存在的路径或入参解析异常等,会出现框架自定义异常即1.2的配置的异常信息,
swagger出现404


如果设为false,swagger正常,其它异常会出现如下页面

Whitelabel Error Page

 
  

This application has no explicit mapping for /error, so you are seeing this as a fallback.

 
  
Fri Jun 21 14:01:28 CST 2019
 
  
There was an unexpected error (type=Not Found, status=404).
 
  
No message available
 

  1.2 增加公用异常拦截

ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class)
    @ResponseBody
    public String defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
return "xxx";
}
}

 

2. 如果要处理错误路径问题且要swagger可用,可以参考org.springframework.boot.autoconfigure.web.BasicErrorController重写自己的

@Controller
@RequestMapping("${server.error.path:${error.path:/error}}")
public class FundaErrorController  implements ErrorController {
    private static final String PATH = "/error";
 
    @Autowired
    private ErrorAttributes errorAttributes;
 
    @Override
    public String getErrorPath() {
        return PATH;
    }
 
 
    @RequestMapping
    @ResponseBody
    public String doHandleError(HttpServletRequest request) {
           return "xxxx"';
      }  
}    

 

转载于:https://www.cnblogs.com/lobin/p/11064267.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值