我正在重新格式化一些遗留代码,而其中有几个变量赋值条件性地将变量分配给两个格式化函数的输出结果,使用异常捕获来实现,如下所示:
String myString;
try {
myString= foo(x);
} catch (Exception e) {
myString= bar(x);
}
这似乎是滥用异常处理,并且对于大量的变量赋值,存在大量重复的样板代码。不需要深入挖掘foo
以识别可能会引起异常的条件,我是否可以使用三元运算符表达式来简化呢?例如:
String myString = foo(x) ? foo(x) : bar(x)
但是,如何捕获可能由foo(x)
引发的异常呢?有没有一种方法可以在这一行代码中实现?或者,如果不行,有没有更好的一行代码表达方式,可以根据可能出现的异常来选择两个赋值之间的选项?我正在使用Java 8。
foo(x) ? foo(x) : bar(x)
至少多调用了一次foo(x)
。 - ernest_k