2

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

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

谢谢

4

4 回答 4

3

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

于 2013-11-08T02:00:08.423 回答
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以后尝试它..

于 2017-08-07T10:31:28.807 回答
0

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

于 2013-11-08T02:08:49.733 回答
0

我不相信你可以有多个try声明catch,但根据情况,你可能不需要它。

如果您正在编写的代码抛出相同的异常,那么它可以全部在一个try...catch语句中处理。将所有不可靠的代码放在try块中并处理出现的异常。

如果您编写的代码抛出不同的异常,那么使用 Java 7,您可以在一个block中捕获多个异常catch。您仍然会将狡猾的代码放在一个try块中。

于 2013-11-08T02:05:21.110 回答