gpt4 book ai didi

java - 在 Google Guava 中使用异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:20:37 26 4
gpt4 key购买 nike

将 Google Guava 与应该抛出异常的方法结合使用的最佳模式是什么?

假设我有:

public Sting someMethod(Integer i) throws SomeException;

我想做的是:

List<String> s=Lists.transform(is,new Function<String, Integer>() {
public String apply(Integer i) {
return someMethod(i);
}
});

由于异常,我无法执行上述操作。有什么好的模式来处理它吗?

最佳答案

将已检查异常作为 RuntimeException 传播:

try {
return someMethod(i);
} catch (SomeException e) {
throw new RuntimeException(e);
}

编辑:由于转换后的列表是延迟计算的,因此在您访问列表元素之前不会抛出异常。您可以通过将转换后的列表复制到新列表中来强制执行评估,例如:

s = new ArrayList<>(s);

您可以将其包装在一个 try-catch block 中,该 block 捕获 RuntimeException 并根据需要进行处理;可以通过在 RuntimeException 上调用 getCause() 来获得原始的 SomeException 实例。或者你可以让 RuntimeException 冒泡。

关于java - 在 Google Guava 中使用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25005112/

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