gpt4 book ai didi

java - 处理 Optional 映射中方法的异常

转载 作者:行者123 更新时间:2023-12-04 14:00:42 24 4
gpt4 key购买 nike

我有一个这样的方法。

@Override
public Optional<List<Order>> getPendingOrders(AuthDTO authDTO) throws MyException {
return connector.getConnection(authDTO).map(p->p.getOrders());
}

这里
connector.getConnection(authDTO)

返回一个 optional Connection 和
p->p.getOrders() 

抛出 KException 我不能改变它的形式
public class KException extends Throwable {

// variables
public String message;
public int code;

// constructor that sets the message
public KException(String message){
this.message = message;
}

// constructor that sets the message and code
public KException(String message, int code){
this.message = message;
this.code = code;
}
}

这是 MyException 的结构
public class MyException extends KException {

public MyException(String message, int code) {
super(message, code);
}
}

代码未编译并出现以下错误
unreported exception com.something.exceptions.KException; must be caught or declared to be thrown

我想将此 KException 转换为 MyException。有没有一种优雅的方法来做到这一点?请帮忙。

最佳答案

正如一些评论所建议的,您可以在 map 中捕获异常。操作,然后执行您需要执行的任何进一步逻辑:

return getConnection(authDTO).map(p -> {
try {
return p.getOrders();
} catch (KException e) {
// perform some other logic
}
});

关于java - 处理 Optional 映射中方法的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47685157/

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