【发布时间】:2020-07-24 11:05:18
【问题描述】:
我有这个方法,它应该只在列表中的所有项目 (List<Foo> foos) 没有发生异常时返回 true:
public boolean isHealthy(){
try{
for(final Foo myFoo : foos){
checkConnection(myfoo);
}
}
catch(DataAccessException | SQLException ex){
return false;
}
return true;
}
checkConnection 是一个可以抛出异常的 void 方法
void checkConnection(final Foo myFoo) throws SQLException{
// ...
}
我想重构 isHealthy 使其更具可读性,因为从 catch 块返回的结果看起来并不优雅,即使该方法只有 9 行,乍一看它对嵌套 try 的作用并不明显-for-catch 块。是否有一些 java 8 特性(可选、流 ..)可以帮助他?
【问题讨论】:
-
我可能会将
return true;放在try部分中,在for循环之后。那么至少读者知道他/她必须更深入地寻找返回值。无论如何,您的方法已经符合我的编码风格。 -
@OleV.V.谢谢。
标签: java exception java-8 try-catch refactoring