我们这篇文章我们即《SpringBoot——统一异常处理(一)》继续讲解统一异常处理
【开发功能描述】
女孩小于10岁,返回“应该在上小学”,大于10岁小于16岁,返回“应该在上初中”
【原始代码】
service
controller
【统一异常处理格式】
新建ExceptionHandle
运行返回结果:
从返回的结果我们发现无论是上小学还是初中 code都是100,这样是不符合逻辑的,要进一步的改善
【解决问题:Code返回值相同】
创建一个GirlException.java
service
ExceptionHandle.java
显示结果
根据结果我们可能会问:什么是未知错误,所以我们继续完善代码
【解决:未知错误】
解决未知错误的办法我们来用日志打印出这个错误
显示结果:控制台显示结果:url=http://localhost:8082/girls/getAge/ 没有添加id 所以报出参数错误 ,正确url=http://localhost:8082/girls/getAge/1
【解决:每个Code定义都不相同,随着系统功能增加,code量的增加,打印出来的code值,我们可能就不记得问题的原因,统一Code】
新建一个枚举ResultEnum.java
package com.springboot.tl.enums;
/**
* Created by 滕柳 on 2018/5/3.
*/
public enum ResultEnum {
UNKONW_ERROR(-1,"未知错误"),
SUCCESS(0,"成功"),
PRIMARY_SCHOOL(100,"上小学"),
MIDDLE_SCHOOL(101,"上初中"),
;
private Integer code;
private String msg;
ResultEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
service
GirlException.java
显示结果:
【结尾】
通过这两篇文章关于统一异常处理的讲解,我们知道统一异常处理对一个系统的重要性,这也是值得我们对以后系统深思的一个方面。