使用枚举方法
异常编号和Message 要统一管理起来,用枚举
将未知异常保存到logger中,这样可以输出到控制台方便查找,推荐定义自己的异常类,这样方便管理
捕获异常类的写法:
@ControllerAdvice spring捕获异常
@ExceptionHandle(value=Exception.class)指定捕获异常处理的方法以及捕获异常类型
@ResponseBode 捕获异常后按流输出内容
异常处理自定义异常
建一个 enums 枚举(不是类)统一管理Code,msg对应关系
更新GirlService中调用的方法 更新传入GirlException 类的参数 统一维护是很重要的技能!
enum枚举类使用:
enum枚举类:
异常处理(下)总结:
通过在domain定义一个Result类,固定返回的内容格式
在service里面定义GirlService,让逻辑在一个地方处理,另外因为不需要进行返回的处理,所以引入了异常
定义自己的异常GirlException可以除了msg,还可以返回code的字段异常
加一个ExceptionHandle捕获异常的类
将code和msg定义成枚举进行统一管理
传枚举内容的方式
将返回错误和msg进行统一管理:enums
如果不清楚异常具体是在哪里,我们可以在ExceptionHandle里打日志对异常进行记录
这里用到枚举
记录捕获时 应当记录日常
定义枚举例子:
GrilException
逻辑方法……
ResultEnum
ExceptionHandle
修改自定义异常的有参构造函数中的参数
修改Service中的自定义异常参数为枚举类型对象
但依然存在问题:
code与message没有统一维护
使用枚举enum
Exception系统异常的定义和写法,可以打印异常日志,不参与到返回值中
在切面通知Advice中,对捕获到的异常类进行细分处理,使用instanceof,判断捕获到的Exception类型,然后根据业务逻辑,返回不同的json数据应答
枚举设计,是为了方便msg code方便被管理和统一维护
1.建立一个枚举类ResultEnum 类里面定义一个 code和msg的属性 然后get Set 构造
需要查看具体捕获的异常,可以用Logger类,打印到控制台
维护错误代码和错误信息,通过枚举类型


=========GirlController======= @RequestMapping("/girlGetAge/{id}") public void getAge(@PathVariable("id") Integer id) throws Exception { girlService.getAge(id); } ==========GirlService============== //异常抛给controller public void getAge(Integer id) throws Exception{ Girl girl=girlRepository.findOne(id); Integer age=girl.getAge(); if(age<10) { throw new GirlException(ResultEnum.PRIMARY_SCHOOL); }else if(age>10 && age<16) { throw new GirlException(ResultEnum.MIDDLE_SCHOOL); } } =========ResultEnum========== public enum ResultEnum { UNKONW_ERROR(-1,"未知错误"), SUCCESS(0,"成功"), PRIMARY_SCHOOL(100,"你在上小学"), MIDDLE_SCHOOL(101,"你在上初中"), ; private Integer code; private String msg; get\set方法...... }