SpringBoot项目中的异常处理方式
- 背景:在编写毕设SpringBoot项目的过程中,工具类经常会遇到各种异常。那么,这些工具类中的异常该如何处理呢?
- 前提:项目中已经实现了自定义异常以及全局异常处理器(全局异常处理器在捕获到异常后,会跳过controller方法,直接向前端返回Result)
1. 不catch,在方法签名中直接抛出
- 优点
- 简单明了,直接抛出异常
- 缺点
- 在service层调用工具类时,需要捕获并处理这些异常,增加了代码的复杂性和冗余
2. catch,捕获后记录日志并抛出自定义异常
- 优点
- service层中不需要重复编写try-catch逻辑,只需要关注业务逻辑
- 更加优雅和清晰,异常处理集中在工具类中
- 缺点
- 可能限制了工具类的复用性,因为自定义异常是特定于当前项目的
3. catch,捕获后记录日志并返回null或false等
- 优点
- 简单易懂,返回值直接反映操作的成功与否
- 保留工具类的通用性,便于复用
- 缺点
- 在业务层中需要检查返回值,并在必要时抛出异常