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;
   }
}