diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/util/ExceptionUtils.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/ExceptionUtils.java index fc7783dd..612b700b 100644 --- a/continew-starter-core/src/main/java/top/continew/starter/core/util/ExceptionUtils.java +++ b/continew-starter-core/src/main/java/top/continew/starter/core/util/ExceptionUtils.java @@ -24,6 +24,7 @@ import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.function.Consumer; +import java.util.function.Function; /** * 异常工具类 @@ -107,6 +108,25 @@ public class ExceptionUtils { return exToDefault(exSupplier, defaultValue, null); } + /** + * 如果有异常,抛出自定义异常 + * + * @param exSupplier 可能会出现异常的方法执行 + * @param exceptionMapper 异常转换函数 + * @param 返回值类型 + * @param 自定义异常类型 + * @return 执行结果 + * @throws E 自定义异常 + */ + public static T exToThrow(ExSupplier exSupplier, + Function exceptionMapper) throws E { + try { + return exSupplier.get(); + } catch (Exception e) { + throw exceptionMapper.apply(e); + } + } + /** * 如果有异常,执行异常处理,返回默认值 * @@ -140,5 +160,6 @@ public class ExceptionUtils { * @throws Exception / */ T get() throws Exception; + } }