这篇文章也是连接着上一篇文章《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中具体的应用。