refactor(exception)!: 修改 SysExceptionBizException

- 将 `SysException` 和 `BizException` 的构造方法设为 `protected`,供子类的构造方法调用
- 创建对应的工厂方法用于直接创建 `SysException` 和 `BizException` 实例
This commit is contained in:
2025-10-01 22:56:56 +08:00
parent a7b1067ebb
commit 08432353fe
5 changed files with 48 additions and 25 deletions

View File

@@ -33,21 +33,13 @@ public class BizException extends RuntimeException {
private static final String DEFAULT_MSG = "业务异常";
/**
* 使用默认 message 构造新的业务异常。
* {@code cause} 未初始化,后面可能会通过调用 {@link #initCause} 进行初始化。
*/
public BizException() {
super(DEFAULT_MSG);
}
/**
* 使用指定的 {@code message} 构造新的业务异常。
* {@code cause} 未初始化,后面可能会通过调用 {@link #initCause} 进行初始化。
*
* @param message 异常信息
*/
public BizException(String message) {
protected BizException(String message) {
super(message);
}
@@ -57,7 +49,7 @@ public class BizException extends RuntimeException {
*
* @param cause 包装的异常
*/
public BizException(Throwable cause) {
protected BizException(Throwable cause) {
super(cause);
}
@@ -67,8 +59,27 @@ public class BizException extends RuntimeException {
* @param message 异常信息
* @param cause 包装的异常
*/
public BizException(String message, Throwable cause) {
protected BizException(String message, Throwable cause) {
super(message, cause);
}
public static BizException of() {
return new BizException(DEFAULT_MSG);
}
public static BizException of(String message) {
return new BizException(message);
}
public static BizException of(String errorMessageFormat, Object... errorMessageArgs) {
return new BizException(String.format(errorMessageFormat, errorMessageArgs));
}
public static BizException of(Throwable cause) {
return new BizException(cause);
}
public static BizException of(String message, Throwable cause) {
return new BizException(message, cause);
}
}

View File

@@ -33,7 +33,7 @@ public class NoAvailableMacFoundException extends SysException {
* {@code cause} 未初始化,后面可能会通过调用 {@link #initCause} 进行初始化。
*/
public NoAvailableMacFoundException() {
super();
super("无法找到可访问的 Mac 地址");
}
/**

View File

@@ -30,21 +30,13 @@ public class SysException extends RuntimeException {
private static final String DEFAULT_MSG = "系统异常";
/**
* 使用默认 message 构造新的系统异常。
* {@code cause} 未初始化,后面可能会通过调用 {@link #initCause} 进行初始化。
*/
public SysException() {
super(DEFAULT_MSG);
}
/**
* 使用指定的 {@code message} 构造新的系统异常。
* {@code cause} 未初始化,后面可能会通过调用 {@link #initCause} 进行初始化。
*
* @param message 异常信息
*/
public SysException(String message) {
protected SysException(String message) {
super(message);
}
@@ -54,7 +46,7 @@ public class SysException extends RuntimeException {
*
* @param cause 包装的异常
*/
public SysException(Throwable cause) {
protected SysException(Throwable cause) {
super(cause);
}
@@ -64,7 +56,27 @@ public class SysException extends RuntimeException {
* @param message 异常信息
* @param cause 包装的异常
*/
public SysException(String message, Throwable cause) {
protected SysException(String message, Throwable cause) {
super(message, cause);
}
public static SysException of() {
return new SysException(DEFAULT_MSG);
}
public static SysException of(String message) {
return new SysException(message);
}
public static SysException of(String errorMessageFormat, Object... errorMessageArgs) {
return new SysException(String.format(errorMessageFormat, errorMessageArgs));
}
public static SysException of(Throwable cause) {
return new SysException(cause);
}
public static SysException of(String message, Throwable cause) {
return new SysException(message, cause);
}
}

View File

@@ -381,7 +381,7 @@ class CustomUnifiedResponseFactoryTests {
assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "查询失败", user));
// Throwable
BizException bizException = new BizException("业务异常");
BizException bizException = BizException.of("业务异常");
assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, bizException));
assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, (Throwable) null));
}

View File

@@ -379,7 +379,7 @@ class UnifiedResponseTests {
assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "查询失败", user));
// Throwable
BizException bizException = new BizException("业务异常");
BizException bizException = BizException.of("业务异常");
assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, bizException));
assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, (Throwable) null));
}