From 0bc8ce836a9f23f4118aace113c635cd783aeff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=87=A7=E8=87=A7?= <2556450572@qq.com> Date: Tue, 6 Dec 2022 14:13:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E3=80=906.x=E3=80=91=E5=B0=86Opt=E7=9A=84o?= =?UTF-8?q?fTry=E6=8D=95=E8=8E=B7=E8=8C=83=E5=9B=B4=E4=BB=8EException?= =?UTF-8?q?=E6=8F=90=E5=8D=87=E5=88=B0Throwable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/core/lang/Opt.java | 15 ++++++++------- .../test/java/cn/hutool/core/lang/OptTest.java | 8 ++++++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java b/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java index ce96f742b..2cce3246e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java @@ -32,6 +32,7 @@ import java.util.Objects; import java.util.Optional; import java.util.Collection; import java.util.NoSuchElementException; +import java.util.concurrent.Callable; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; @@ -43,7 +44,7 @@ import java.util.stream.Stream; * 详细见: * * @param 包裹里元素的类型 - * @author VampireAchao + * @author VampireAchao Cizai * @see java.util.Optional */ public class Opt { @@ -119,9 +120,9 @@ public class Opt { public static Opt ofTry(final SerSupplier supplier) { try { return Opt.ofNullable(supplier.getting()); - } catch (final Exception e) { + } catch (final Throwable e) { final Opt empty = new Opt<>(null); - empty.exception = e; + empty.throwable = e; return empty; } } @@ -143,7 +144,7 @@ public class Opt { * 包裹里实际的元素 */ private final T value; - private Exception exception; + private Throwable throwable; /** * {@code Opt}的构造函数 @@ -186,8 +187,8 @@ public class Opt { * @return 异常 * @since 5.7.17 */ - public Exception getException() { - return this.exception; + public Throwable getThrowable() { + return this.throwable; } /** @@ -198,7 +199,7 @@ public class Opt { * @since 5.7.17 */ public boolean isFail() { - return null != this.exception; + return null != this.throwable; } /** diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/OptTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/OptTest.java index f1542d46a..66baa5454 100644 --- a/hutool-core/src/test/java/cn/hutool/core/lang/OptTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/lang/OptTest.java @@ -171,6 +171,10 @@ public class OptTest { // 你可以在里面写一长串调用链 list.get(0).getUser().getId() return list.get(0); }).exceptionOrElse("hutool"); + + Assert.assertTrue(Opt.ofTry(() -> { + throw new AssertionError(""); + }).getThrowable() instanceof AssertionError); Assert.assertEquals(npe, npeSituation); Assert.assertEquals(indexOut, indexOutSituation); Assert.assertEquals("hutool", npe); @@ -186,8 +190,8 @@ public class OptTest { } }); Assert.assertTrue( - (i % 2 == 0 && opt.getException() instanceof IllegalStateException) || - (i % 2 != 0 && opt.getException() instanceof NullPointerException) + (i % 2 == 0 && opt.getThrowable() instanceof IllegalStateException) || + (i % 2 != 0 && opt.getThrowable() instanceof NullPointerException) ); }); } From df94a1ebe2132ece0b84120c68df4377c36a9f81 Mon Sep 17 00:00:00 2001 From: emptypoint <1215582715@qq.com> Date: Tue, 6 Dec 2022 06:35:10 +0000 Subject: [PATCH 2/2] Update hutool-core/src/main/java/cn/hutool/core/lang/Opt.java --- hutool-core/src/main/java/cn/hutool/core/lang/Opt.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java b/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java index 2cce3246e..66a46269b 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Opt.java @@ -44,7 +44,8 @@ import java.util.stream.Stream; * 详细见: * * @param 包裹里元素的类型 - * @author VampireAchao Cizai + * @author VampireAchao + * @author Cizai * @see java.util.Optional */ public class Opt {