关于全局异常的处理----高级玩法

该博客展示了如何使用@RestControllerAdvice进行全局异常处理。在Java中,通过@ExceptionHandler注解捕获并处理CustomException和所有其他未预见的Exception。自定义响应类R包含了状态码、错误信息和数据字段,提供了success和error静态方法方便构建响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@RestControllerAdvice
public class ProjectExceptionHandler {

//捕获程序开发者预计到的异常抛出进行处理
@ExceptionHandler(CustomException.class)
public R<String> doCustomException(CustomException e){
    System.err.println(e.getMessage());
    return R.error(e.getMessage());
}

//捕获程序开发者未预计到的异常进行处理
@ExceptionHandler(Exception.class)
public R<String> doException(Exception e){
    System.err.println(e.getMessage());
    return R.error(e.getMessage());
}

}

下面这是R的自定义方法
@Data
public class R {

private Integer code; //编码:1成功,0和其它数字为失败

private String msg; //错误信息

private T data; //数据

private Map map = new HashMap(); //动态数据

public static <T> R<T> success(T object) {
    R<T> r = new R<T>();
    r.data = object;
    r.code = 1;
    return r;
}

public static <T> R<T> error(String msg) {
    R r = new R();
    r.msg = msg;
    r.code = 0;
    return r;
}

public R<T> add(String key, Object value) {
    this.map.put(key, value);
    return this;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值