Java:尝试捕获继续吗?
问题内容:
假设我可以声明一组:
try {
String a = getProperty("a");
String b = getProperty("b");
String c = getProperty("c");
} catch(Exception e) {
}
现在,让我们说找不到属性b,并且该函数引发异常。在这种情况下,我将如何继续操作,或者将b设置为null而不用为每个属性编写try-
catch块?我的意思是,a,b,c存在,但有时在抛出异常的过程中可能根本找不到它们。
问题答案:
假设您无法更改该函数,以便在找不到该属性时返回null,则您有点想将所有内容包装在其自己的try catch块中-
尤其是如果您希望每个可以检索的值都可以被检索(与让失败的第一个值取消整个操作相反)。
如果您要检索很多这些属性,那么编写辅助方法以使用它可能会更干净:
String getPropertySafely(String key) {
try {
return getProperty(key);
} catch (Exception e) {
return null;
}
}