refactor(exception)!: 重构多场景异常相关代码

- `IExceptionType` 不继承自 `IExceptionFactory`,具体表示异常场景的枚举,可按需实现这两个接口
- 简化 `IMultiTypesException` 接口定义,不与 `IExceptionType` 强制绑定
- 修改相关文档与描述

通过以上修改,使表示异常场景的枚举可以与异常类分开定义,使不同的异常可以复用同一套场景枚举。不强制作为单一异常的工厂,在被不同的异常复用时,可以更灵活地定义不同的工厂方法。
This commit is contained in:
2025-08-01 17:30:36 +08:00
parent ce9f3edfbc
commit 4638853da6
8 changed files with 52 additions and 87 deletions

View File

@@ -77,7 +77,7 @@ System.out.println(result); // Output: Return string
```java
public final class LoginException
extends RuntimeException
implements IMultiTypesException<LoginException, LoginException.Type, String> {
implements IMultiTypesException<LoginException.Type> {
private static final long serialVersionUID = 881293090625085616L;
private final Type type;
private LoginException(@Nonnull Type type, @Nonnull String message) {
@@ -104,7 +104,7 @@ public final class LoginException
// ...
public enum Type implements IExceptionType<LoginException, String> {
public enum Type implements IExceptionType<String>, IExceptionFactory<LoginException> {
DEFAULT("00", "当前会话未登录"),
NOT_TOKEN("10", "未提供token"),
INVALID_TOKEN("20", "token无效"),