背景介绍
后端在接口中抛出业务异常,前端会拿到异常信息。但是这些异常信息往往一大串,用户看看不懂。
文本全局异常处理的目的:将异常信息翻译成用户看得懂的信息。
关键说明
使用@ControllerAdvice、@ExceptionHandler
@ControllerAdvice是表示拦截所有@Controller,然后做一些处理
@ExceptionHandler可以自动识别异常,对应异常被抛出后会进入其注解的方法
后端设计
场景
后端是java服务,使用springboot框架。
比如前端查询帮助文档,文档文件丢失,异常报成“FileNotFoundException”,用户哪看的懂这个,必须提示“文档正在更新中,暂时不发查看,敬请期待。”
异常处理逻辑
自定义Exception
自定义Exception的目的是与其他Java原生异常区分,我可以设定我的全局异常只处理我自定义的异常,这样就比较灵活。
/**
* 自定以异常
*/
public class VtuberException extends RuntimeException {
private final transient String message;
public VtuberException(String message) {
this.message = message;
}
}
业务接口定义
查询帮助文