微服务中Exception(异常)的设计思想
系统对于异常的处理可以使用统一的异常处理流程:
- 自定义异常类型;
- 自定义错误代码和错误信息;
- 对于可预知的异常由程序员在代码中主动抛出,由SpringMVC统一捕获;
- 可预知异常时程序员在代码中手动抛出本系统定义的特定异常类型,由于是程序员抛出的异常,通常信息比较比较齐全,程序员在抛出时会指定错误代码及错误信息,获取异常信息也比较方便;
- 对于不可预知的异常(运行时异常)由SpringMVC统一捕获Exception类型的异常;
- 可预知的异常及不可预知的运行时异常最终会采用统一的信息格式(错误代码+错误信息)来表示,最终也会随请求响应给客户端;
/**
* @Author:朱国庆
* @Date:2019/12/16 00:26
* @Version: 1.0
*/
@ControllerAdvice//控制器增强
@ResponseBody
public class ExceptionCatch {
private static final Logger LOGGER = LoggerFactory.getLogger(ExceptionCatch.class)