背景分析
在项目的开发中,不管是对底层的数据逻辑操作过程,还是业务逻辑的处理过程,还是控制逻辑的处理过程,都不可避免会遇到各种可预知的、不可预知的异常。处理好异常对系统有很好的保护作用,同时会大大提高用户的体验。
异常处理分析
概述
Java项目中处理异常方式无非两种,要么执行trycatch操作,要么执行throw操作(抛给其它对象处理),无论采用哪种方式,其目的是让我们的系统对异常要有反馈。但现在的问题是我们如何让这种反馈代码的编写即简单又直观、友好。
处理规范
我们在处理异常的过程中通常要遵循一定的设计规范,例如:
捕获异常时与抛出的异常必须完全匹配,或者捕获异常是抛出异常的父类类型。
避免直接抛出RuntimeException,更不允许抛出Exception或者Throwable,应使用有业务含义的自定义异常(例如ServiceException)。
捕获异常后必须进行处理(例如记录日志)。如果不想处理它,需要将异常抛给它的调用者。
最外层的逻辑必须处理异常,将其转化成用户可以理解的内容。
避免出现重复的代码(Don’t Repeat Yourself),即DAY原则。
SpringBoot 工程下的异常处理
准备工作
第一步:创建项目或module,并添加web依赖,代码如下:
<dependency>
<groupId>org.springframework.boot</groupId