项目中异常是如何处理的
简介:
项目中设定了全局异常处理器,统一处理预期和运行时异常。预期异常由程序员手动抛出,用于异常情况的接口返回;运行时异常为不可控错误,提供统一返回格式便于前端提示和后端排查。全局异常处理器借助@RestControllerAdvice和@ExceptionHandler注解,前者标识处理器,后者按异常类型定制前端响应,如预期异常直接返回,运行时异常则调整响应内容。
在我们的项目中定义了一个全局异常处理器来统一处理异常。
一般项目开发中的异常分为了两类:一个是预期异常,一个是运行时异常。
- 其中预期异常就是程序员手动抛出的异常,如果有业务处理不合理,可以使用异常来提供接口的返回
- 运行时异常,这类异常是项目中不可控的异常,比如代码直接报错了,这个时候接口的返回会有一个统一的返回格式,来方便的给前端进行提醒,同时呢,后端看到之后可以在后端查看异常方便进行处理
在定义全局异常的时候,会使用到两个注解
- @RestControllerAdvice 定义是一个控制器增强类,来表示这个类是一个全局异常处理器
- @ExceptionHandler 这个是在方法上进行定义,它可以指定异常的类型来进行拦截,通过不同的异常类型,进行不同的前端响应,比如预期异常可以直接返回,如果是运行时异常,则会转换响应内容