统一异常处理

1. 首先,我们定义一个自定义异常类,用于表示业务逻辑中的特定错误。

public class BusinessException extends RuntimeException {  
  
    private int code;  
    private String message;  
  
    public BusinessException(int code, String message) {  
        super(message);  
        this.code = code;  
        this.message = message;  
    }  
  
    // getter 和 setter 省略  
  
    public int getCode() {  
        return code;  
    }  
  
    public void setCode(int code) {  
        this.code = code;  
    }  
  
    @Override  
    public String getMessage() {  
        return message;  
    }  
  
    public void setMessage(String message) {  
        this.message = message;  
    }  
}

2. 然后,创建一个全局异常处理器@ControllerAdvice@RestControllerAdvice,用于捕获并处理异常。

@RestControllerAdvice  
public class GlobalExceptionHandler {  
  
    @ExceptionHandler(BusinessException.class)  
    public ResponseEntity<Object> handleBusinessException(BusinessException e) {  
        // 自定义返回格式  
        Map<String, Object> body = new HashMap<>();  
        body.put("code", e.getCode());  
        body.put("message", e.getMessage());  
  
        return new ResponseEntity<>(body, HttpStatus.BAD_REQUEST);  
    }  
  
    // 可以添加更多异常处理方法来捕获不同类型的异常  
  
    @ExceptionHandler(Exception.class)  
    public ResponseEntity<Object> handleException(Exception e) {  
        // 通用异常处理  
        Map<String, Object> body = new HashMap<>();  
        body.put("code", 500);  
        body.put("message", "服务器内部错误");  
  
        return new ResponseEntity<>(body, HttpStatus.INTERNAL_SERVER_ERROR);  
    }  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值