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 {