在Java中,多个Try Blocks可以共享一个Catch Block吗?

时间:2013-11-08 01:58:41

标签: java try-catch

我正在开发一个java程序,它将由多个方法构建,每个方法都有自己的try / catch块。我发现自己在每个try块中复制了相同的catch块。

有没有办法让多个try块使用一个catch块?

由于

4 个答案:

答案 0 :(得分:2)

将共享逻辑放在一个公共方法中,并从每个catch块调用它。

答案 1 :(得分:1)

try {
        try (BufferedReader autoClosable1 = new BufferedReader(new FileReader(new File("")))) {
        }
        try (BufferedReader autoClosable2 = new BufferedReader(new FileReader(new File("")))) {
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

//在java 7开始尝试..

答案 2 :(得分:0)

我不相信您可以从一个try发出多个catch声明,但根据具体情况,您可能不需要它。

如果您正在编写的代码抛出相同的异常,则可以在一个try...catch语句中处理它们。将所有狡猾的代码放在try块中,并处理通过的异常。

如果您正在编写的代码抛出不同的异常,那么使用Java 7,您可以catch multiple exceptions within one catch block。你仍然将狡猾的代码放在一个try块中。

答案 3 :(得分:0)

不,你不能那样做。您必须至少有一个catch块或finally块才能编译try块。由于finally块无论如何都会被执行,无论是否发生异常,都必须有catch块以防止发生异常。正如jtah所说,你可以在每个catch块中执行一个通用的方法。