springMVC定义统一异常拦截器

问题描述:服务端有异常信息,导致调用方,获取结果为null。(虽然异常,但是未让程序停止。调用方拿到 状态码是200)

解决办法:用springMVC的 @ControllerAdvice注解拦截请求+@ExceptionHandler注解拦截异常。

                 拦截异常信息。返回一个统一的错误json信息。

名词解释:(具体请看https://docs.spring.io/spring/docs/current/javadoc-api/官方文档介绍)

@ControllerAdvice:其应用在所有通过@RequestMapping注解的方法。

该注解作用对象为TYPE,包括类、接口和枚举等,在运行时有效,并且可以通过Spring扫描为bean组件。
其可以包含由@ExceptionHandler、@InitBinder 和  @ModelAttribute标注的方法,可以处理多个Controller类,这样所有控制器的异常可以在一个地方进行处理。
@ExceptionHandler:该注解作用在方法层面。拦截所有方法的异常。

该注解作用对象为方法,并且在运行时有效,value()可以指定异常类。由该注解注释的方法可以具有灵活的输入参数,详情请看官方文档。上边有链接。

代码如下:

@ResponseBody
@ControllerAdvice
public class ExceptionHandlerAdvice {

    private Logger log = Logger.getLogger(this.getClass());

    /**
     * 拦截所有异常信息。
     * @param exception
     * @return
     */
    @ExceptionHandler(value = Exception.class)
    public String exception(Exception exception) {

        exception.printStackTrace();

        return ResponseHelp.responseApiErrorText("999999", exception.toString());
    }

}

 

参考文档:https://www.cnblogs.com/shuimuzhushui/p/6791600.html

 

转载于:https://my.oschina.net/u/2331292/blog/1862276

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值