注意:
每一个try---cache中的cache代表的是不同的异常业务和逻辑以及对应的错误码
当然可以封装成Result对象.将正常逻辑搞在try中,异常逻辑搞在cache中,这样就可以解决,但是这样有大量的重复代码,对于逻辑的管理并不是很好,比如:
@GetMapping("/test2") public Map<String, String> test2() { Map<String, String> result = new HashMap<>(16); // TODO 直接捕获所有代码块,然后在 cache try { int i = 10 / 0; result.put("code", "200"); result.put("data", "具体返回的结果集"); } catch (Exception e) { result.put("code", "500"); result.put("message", "请求错误"); } return result; }
异常分类:
系统异常:
自定义异常:一定是实现或者继承某个异常类,这样就可以实现,一定要学会代码的抽取,这样可以节省大量的代码,代码量不是那么的重复;一定要注意分析业务逻辑;
1.异常的错误码--这个搬是通过枚举的写法搞定
2.异常的错误信息