Skip to content

⚠️ 自定义异常使用指南

📖 功能介绍

TIP

自定义异常(InvokeException)提供了一种优雅的方式来处理业务异常,支持快速返回错误信息,提升代码可读性和可维护性。

📚 类路径

java
com.wueasy.base.exception.InvokeException

🔧 异常结构

java
public class InvokeException extends RuntimeException {
    private int code;      // 错误码
    private String msg;    // 错误信息
    
    // 构造方法
    public InvokeException(int code, String msg) {
        super(msg);
        this.code = code;
        this.msg = msg;
    }
}

🚀 使用示例

基础用法

java
// 简单的异常抛出
throw new InvokeException(-1, "操作失败");

登录验证示例

java
public SessionVo login(LoginDto dto) {
    // 1. 参数验证
    if (StringUtils.isEmpty(dto.getAccountNo()) || StringUtils.isEmpty(dto.getPassword())) {
        throw new InvokeException(-1, "用户名或密码不能为空");
    }
    
    // 2. 登录验证
    if (!"admin".equals(dto.getAccountNo()) || !"123456".equals(dto.getPassword())) {
        throw new InvokeException(-1, "用户名或密码不正确");
    }
    
    // 3. 创建会话信息
    SessionVo session = new SessionVo();
    session.setIsSystem("admin".equals(dto.getAccountNo()));  // 是否超级管理员
    session.setUserId("1");                                   // 用户ID
    session.setNickname("wueasy");                           // 用户昵称
    
    // 4. 设置权限信息
    Set<String> authorizeCodeList = new HashSet<>();
    authorizeCodeList.add("user");
    session.setAuthorizeCodeList(authorizeCodeList);         // 权限代码集合
    
    // 5. 设置可访问URL
    Set<String> linkUrlSetAll = new HashSet<>();
    linkUrlSetAll.add("/demo/get");
    session.setAuthorizeUrlList(linkUrlSetAll);              // 可访问的URL地址集合
    
    return session;
}

💡 最佳实践

1. 错误码规范

java
// 推荐使用统一的错误码定义
public class ErrorCode {
    public static final int SUCCESS = 0;        // 成功
    public static final int PARAM_ERROR = -1;   // 参数错误
    public static final int AUTH_ERROR = -2;    // 认证错误
    public static final int BIZ_ERROR = -3;     // 业务错误
}

// 使用示例
throw new InvokeException(ErrorCode.PARAM_ERROR, "参数不能为空");

2. 异常处理场景

  • 参数验证失败
  • 业务规则校验
  • 权限验证失败
  • 数据一致性检查

3. 注意事项

  • 合理设置错误码
  • 提供清晰的错误信息
  • 避免暴露敏感信息
  • 保持异常信息一致性

📝 错误码说明

错误码说明使用场景
0成功操作成功
-1参数错误参数验证失败
-2认证错误登录、权限验证
-3业务错误业务规则校验
-4系统错误系统级异常

🔍 异常处理建议

  1. 异常粒度

    • 保持适当的异常粒度
    • 避免过于笼统的错误信息
    • 提供有意义的错误描述
  2. 日志记录

    • 记录关键异常信息
    • 包含必要的上下文
    • 便于问题定位
  3. 错误提示

    • 面向用户友好
    • 提供解决建议
    • 保持信息安全