我们都听说过在Java 7中我们可以写:
try {
//something with files and IO
} catch (FileNotFoundException | IOException ex) {
ex.printStackTrace();
System.out.println("It's can't copy file");
}
而不是
try {
//something with files and IO
} catch (FileNotFoundException wx) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
但是,除了更短的代码之外,它还有什么好处呢? 即使我们希望在每个catch块中完成相同的操作,我们也可以:
那么,此功能是否仅用于更干净的代码或其他任何内容?
感谢。
答案 0 :(得分:10)
这不是为了使代码看起来更干净并保存击键。这些是附带福利。
重复会导致不一致和错误。因此,通过创建不需要重复的语法,可以避免真正的错误。这就是DRY背后的动机 - 不是漂亮的代码,写得更快。
答案 1 :(得分:2)
是的,主要是为了更清晰的代码。
答案 2 :(得分:1)
这个想法相当于:
之间的区别if (myVar == true && myOtherVar == false)
// Logic
和
if (myVar == true)
{
if (myOtherVar == false)
// Same logic
}
这只是更简洁,更清晰的代码。
答案 3 :(得分:1)
这是为了更清洁的代码......但这非常有价值。在某些情况下,您可以抛出4或5个异常,如果您想要做的只是在所有情况下都是相同的(通常是这种情况),这会减少大量代码。
这使它更具可读性,也更易于测试。这本身就足够有价值了。
答案 4 :(得分:1)
较短的代码意味着更少的维护代码 - 这不是那么小的优势。是的,我可以编写异常处理方法,但现在我不经常这样做,例如只有在不同的代码位置抛出异常时。