From e5d47470b19f684036b57b3be689f633825155cb Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 16 Aug 2023 10:57:50 +0800 Subject: [PATCH] =?UTF-8?q?Opt=E6=B7=BB=E5=8A=A0ifFail=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/hutool/core/lang/Opt.java | 14 +++++++------- .../java/org/dromara/hutool/core/lang/OptTest.java | 3 +++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/lang/Opt.java b/hutool-core/src/main/java/org/dromara/hutool/core/lang/Opt.java index 6c1ea0c72..ec614071a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/lang/Opt.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/lang/Opt.java @@ -192,18 +192,18 @@ public class Opt { } /** - * 如果包裹内容失败了,就执行传入的操作({@link Consumer#accept}) + * 如果包裹内容失败了,则执行传入的操作({@link Consumer#accept}) * - *

例如如果值存在就打印结果 + *

例如执行有异常就打印结果 *

{@code
-	 * Opt.ofTry(() -> 1 / 0).ifFail(Console::log);
+	 *     Opt.ofTry(() -> 1 / 0).ifFail(Console::log);
 	 * }
* * @param action 你想要执行的操作 * @return this * @throws NullPointerException 如果包裹里的值存在,但你传入的操作为{@code null}时抛出 */ - public Opt ifFail(final Consumer action) { + public Opt ifFail(final Consumer action) throws NullPointerException{ Objects.requireNonNull(action, "action is null"); if (isFail()) { @@ -218,16 +218,16 @@ public class Opt { * *

例如如果值存在就打印结果 *

{@code
-	 * Opt.ofTry(() -> 1 / 0).ifFail(Console::log, ArithmeticException.class);
+	 *     Opt.ofTry(() -> 1 / 0).ifFail(Console::log, ArithmeticException.class);
 	 * }
* * @param action 你想要执行的操作 - * @param exs 抛出相应异常执行操作 + * @param exs 限定的异常 * @return this * @throws NullPointerException 如果包裹里的值存在,但你传入的操作为{@code null}时抛出 */ @SafeVarargs - public final Opt ifFail(final Consumer action, final Class... exs) { + public final Opt ifFail(final Consumer action, final Class... exs) throws NullPointerException{ Objects.requireNonNull(action, "action is null"); if (isFail() && EasyStream.of(exs).anyMatch(e -> e.isAssignableFrom(throwable.getClass()))) { diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/lang/OptTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/lang/OptTest.java index f27cdcfde..71794f1e3 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/lang/OptTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/lang/OptTest.java @@ -6,6 +6,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import javax.management.monitor.MonitorSettingException; @@ -210,7 +211,9 @@ public class OptTest { private String nickname; } + @SuppressWarnings({"NumericOverflow", "divzero"}) @Test + @Disabled void testFail() { Opt.ofTry(() -> 1 / 0) .ifFail(Console::log)