@ExceptionHandler全局异常处理--代码更精简易懂

采用springmvc框架搭建的项目,为提高web项目代码可读性,复用率。记录一下关于项目中异常的统一处理。

1、当一个Controller中有方法加了@ExceptionHandler之后,这个Controller其他方法中没有捕获的异常就会以参数的形式传入加了@ExceptionHandler注解的那个方法中。

例如在一个controller中加入以下代码我们便可省去繁杂的每个方法中的try{}catch{}:

    @ExceptionHandler
    public ServiceStatus exp(HttpServletResponse response, Exception ex) {
        response.setStatus(500);
        LOG.error("Gloal exception Handler", ex);
        return new ServiceStatus(ServiceStatus.Status.Fail, ex.getMessage());
    }
ServiceStatus实体:
public class ServiceStatus {

    private Status status;
    private String msg;
    private Long id;
    public ServiceStatus(Status status, String msg) {
        this.status = status;
        this.msg = msg;
    }
    public ServiceStatus(Status status, String msg, Long id) {
        this.status = status;
        this.msg = msg;
        this.id = id;
    }
    public enum Status {
        Success(1), Fail(2);
        private int status;
        Status(int status) {
            this.status = status;
        }
        public int getStatus() {
            return status;
        }
        public String toString() {
            return  new Integer(this.status).toString();
        }
    }
    public String getStatus() {
        return status.toString();
    }
    public void setStatus(Status status) {
        this.status = status;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
}

2、我们可以更抽象对整个项目的异常进行统一处理。

@ControllerAdvice + @ExceptionHandler配合使用

可参考博客:https://blog.csdn.net/kinginblue/article/details/70186586






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值