gpt4 book ai didi

java - 在可选的 orElseThrow 上返回默认/通用异常

转载 作者:行者123 更新时间:2023-12-02 04:01:52 30 4
gpt4 key购买 nike

我不确定我的问题的标题,但这是我的问题。我有下面的代码:

return Optional.of(t).filter(p -> {
PolicyNumber test = (PolicyNumber) p;

return service.getAndValidate(p).test(p);
}).map(p -> {
return p;
}).orElseThrow(() -> {
return null;
});

getAndValidate 方法工作正常,但是当我到达 map block (这就是你所说的吗?)时,会触发错误。之前,我一直在使用 try...catch 并且我可以简单地编写如下代码:

try {
//some code
} catch (Exception e) {
e.printStackTrace();
}

有了这个,我就可以很容易地明白这场骚动是怎么回事了。我想知道如何为 Optional 执行此操作。我对它还很陌生,我正在努力对其有所了解。我已经在线查看了教程,但我看到的大多数内容都要求我有一个包含预定消息的类,以用作异常消息。如果我只是使用 return null; 显然我不会收到任何错误消息,也不会知道触发了什么错误。任何建议将不胜感激

最佳答案

在传递给 map(示例中的 lambda)的方法主体中,您可以像在任何其他方法中一样在代码周围添加 try-catch block 。

Optional的orElseThrow方法的目的只是在Optional为空时抛出异常。您传递给它的方法应该构造您想要抛出的异常对象(例如RuntimeException::new),然后它被抛出。

关于java - 在可选的 orElseThrow 上返回默认/通用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56729043/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com