主题切换
⚠️ 自定义异常使用指南
📖 功能介绍
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 | 系统错误 | 系统级异常 |
🔍 异常处理建议
异常粒度
- 保持适当的异常粒度
- 避免过于笼统的错误信息
- 提供有意义的错误描述
日志记录
- 记录关键异常信息
- 包含必要的上下文
- 便于问题定位
错误提示
- 面向用户友好
- 提供解决建议
- 保持信息安全