谷粒学苑项目第一天-统一的异常处理方案

1.创建一个异常处理类

复制代码
/**
 * 统一异常处理类
 */
@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    @ResponseBody
    public R error(Exception e){
        e.printStackTrace();
        return R.error();
    }
}
复制代码

2.自定义处理特定异常

在GlobalExceptionHandler.java中添加如下代码

@ExceptionHandler(ArithmeticException.class)
@ResponseBody
public R error(ArithmeticException e){
    e.printStackTrace();
    return R.error().message("执行了自定义异常");
}

3.自定义处理异常(通用)

创建自定义异常类

复制代码
@Data
@AllArgsConstructor// 生成有参构造
@NoArgsConstructor// 生成无参构造
public class GuliException extends RuntimeException {

    @ApiModelProperty(value = "状态码")
    private Integer code;

    private String msg;

}
复制代码

在GlobalExceptionHandler.java中添加如下代码

/**
* 自定义异常处理
*/
@ExceptionHandler(GuliException.class)
@ResponseBody
public R error(GuliException e){
e.printStackTrace();
// 将异常信息写到日志当中
log.error(e.getMsg());
return R.error().message(e.getMsg()).code(e.getCode());
}

 在需要抛出异常的代码块编写下面代码

 try {
            int p=0/0;
        }catch (Exception e){
            throw  new GuliException(20001,"除数不能为0鸭!出现了自定义异常");
        }

 

posted @   –WuJunJie–  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示