【发布时间】:2023-02-16 22:23:26
【问题描述】:
关于 Java Optional 具有以下模板
Optional.ofNullable(executeMethodA())
.ifPresent(() -> executeMethodB());
这里有2个场景:
- 如果
executeMethodA()返回null那么ifPresent是不是执行 - 如果
executeMethodA()返回不是null然后执行ifPresent
直到一切都OK。但是如果executeMethodA() 抛出一个Exception 呢?
有没有像
Optional.ofNullable(executeMethodA())
.ifException(ex -> handleException(ex)) <---
.ifPresent(() -> executeMethodB());
或者
Optional.ofNullable(executeMethodA())
.ifException(ex -> { try/catch block}) <---
.ifPresent(() -> executeMethodB());
目的是避免
try {
Optional.ofNullable(executeMethodA())
.ifPresent(() -> executeMethodB());
}
catch(Exception ex){
...
}
问题:
- 如何处理在内部如果在 Optional 中执行的主要方法抛出异常?
【问题讨论】: