SpringBoot——统一异常处理(二)

我们这篇文章我们即《SpringBoot——统一异常处理(一)》继续讲解统一异常处理

【开发功能描述】

女孩小于10岁,返回“应该在上小学”,大于10岁小于16岁,返回“应该在上初中”

【原始代码】

service

SpringBoot——统一异常处理(二)_第1张图片

controller

SpringBoot——统一异常处理(二)_第2张图片

【统一异常处理格式】

新建ExceptionHandle

SpringBoot——统一异常处理(二)_第3张图片

运行返回结果:



从返回的结果我们发现无论是上小学还是初中 code都是100,这样是不符合逻辑的,要进一步的改善

【解决问题:Code返回值相同】

创建一个GirlException.java

SpringBoot——统一异常处理(二)_第4张图片

service

SpringBoot——统一异常处理(二)_第5张图片

ExceptionHandle.java

SpringBoot——统一异常处理(二)_第6张图片

显示结果

SpringBoot——统一异常处理(二)_第7张图片

根据结果我们可能会问:什么是未知错误,所以我们继续完善代码

【解决:未知错误】

解决未知错误的办法我们来用日志打印出这个错误

SpringBoot——统一异常处理(二)_第8张图片

显示结果:控制台显示结果: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

SpringBoot——统一异常处理(二)_第9张图片

GirlException.java

SpringBoot——统一异常处理(二)_第10张图片

显示结果:

SpringBoot——统一异常处理(二)_第11张图片

【结尾】

通过这两篇文章关于统一异常处理的讲解,我们知道统一异常处理对一个系统的重要性,这也是值得我们对以后系统深思的一个方面。

你可能感兴趣的:(-----SpringBoot,springBoot,异常处理,统一异常处理)