SpringBoot——统一异常处理

2022-09-25 11:45:21

这篇文章也是连接着上一篇文章《SpringBoot——AOP处理请求日志》,我们来继续完善和优化我们的SpringBoot,这次来说一说统一异常处理

【异常处理】

 异常处理是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)这个功能帮助代码增强了可读性,方便了维护者的阅读和理解。 异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。

【为什么要统一异常处理】

因为如果不做统一处理,返回与前端的数据会非常乱,前端不好处理;并且不做统一处理,controller层就要写很多的重复代码。

【统一格式】

{  
     "code":10001,  
     "msg":"异常信息",  
     "data":null       
}  
  
{  
     "code":10000,  
     "msg":"成功",  
     "data":{  
     "id":20,  
     "name":"test",  
     "age":18  
      }   
}

【实现】

以添加一个女生为例:

Result.java

			package com.springboot.tl.domain;
			
			/**
			 * Created by 滕柳 on 2018/5/3.
			 */
			public class Result<T> {
			
			    // 错误码
			    private Integer code;
			
			    //提示信息
			    private String msg;
			
			    //具体内容
			    private T data;
			
			    public Integer getCode() {
			        return code;
			    }
			
			    public void setCode(Integer code) {
			        this.code = code;
			    }
			
			    public String getMsg() {
			        return msg;
			    }
			
			    public void setMsg(String msg) {
			        this.msg = msg;
			    }
			
			    public T getData() {
			        return data;
			    }
			
			    public void setData(T data) {
			        this.data = data;
			    }
}

一、原始代码:

二、添加异常处理的代码:


从上图中的红框中我们知道这是添加异常处理的代码,但是有很多重复的代码,为了不显示自己特别的low所以我们要进行一下优化

三、添加异常处理的优化代码

创建一个ResultUtil.java

        					package com.springboot.tl.util;
						
						import com.springboot.tl.domain.Result;
						
						/**
						 * Created by 滕柳 on 2018/5/3.
						 */
						public class ResultUtil {
						
						    //传参的成功
						    public static Result success(Object object){
						        Result result=new Result();
						        result.setCode(0);
						        result.setMsg("成功");
						        result.setData(object);
						        return result;
						
						    }
						
						    //不传参的成功
						    public static Result success(){
						        return success(null);
						    }
						    //传参的失败
						    public static Result error(Integer code,String msg){
						        Result result=new Result();
						        result.setCode(code);
						        result.setMsg(msg);
						        return result;
						    }
						
						}

Controller


返回结果:


【总结】

  上面的开发大概讲解了一下统一异常处理的格式,以及以一个小的例子来说明如何实现异常处理,下一篇文章我们将要讲解如何在SpringBoot中具体的应用。

  • 作者:滕柳
  • 原文链接:https://blog.csdn.net/tengliu6/article/details/80209201
    更新时间:2022-09-25 11:45:21