我正在开发一个 java 程序,该程序将由多种方法构造,每种方法都有自己的 try/catch 块。我发现自己在每个 try 块中都复制了相同的 catch 块。
有没有办法让多个 try 块使用单个 catch 块?
谢谢
将共享逻辑放在一个公共方法中,并从每个 catch 块中调用它。
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以后尝试它..
不,你不能那样做。您必须至少有一个 catch 块或一个 finally 块才能编译 try 块。由于 finally 块无论如何都会被执行,无论是否发生异常,您都必须有 catch 块以防发生异常。正如 jtah 所说,您可以在每个 catch 块中执行一个通用方法。
我不相信你可以有多个try
声明catch
,但根据情况,你可能不需要它。
如果您正在编写的代码抛出相同的异常,那么它可以全部在一个try...catch
语句中处理。将所有不可靠的代码放在try
块中并处理出现的异常。
如果您编写的代码抛出不同的异常,那么使用 Java 7,您可以在一个block中捕获多个异常catch
。您仍然会将狡猾的代码放在一个try
块中。