java - 如何正确处理多个异常抛出对象

标签 java

我想在更高级别处理异常,而不是在此方法中,但我想确保对象 a 和 b 正确关闭。

close() 方法也可以抛出异常。

这个模板是解决这个问题的合适解决方案还是有更智能/更简单的解决方案?

public void foo() throws Exception {
 A a = null;
 B b = null;
 try {
  a = new A();
  b = new B();
  ...
 } catch(Exception e) {
  throw e;
 }
 finally {
  Exception ex = null;
  try {
   if (a != null)
    a.close();
  } catch(Exception x){
    ex = x;
  }
  try {
   if (b != null)
    b.close();
  } catch(Exception x) {
   ex = x;
  }
  if (ex != null)
   throw ex;
 }

最佳答案

A a = null;
try
{
  a = new A();
  //do stuff
}
finally
{
  a.Close();
}

try block 不需要 catch block ,它需要 catchfinally block (或两者兼而有之)。

关于java - 如何正确处理多个异常抛出对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060252/

相关文章:

Java JSTL 拆分函数正则表达式

java - 将 json 字符串转换为对象数组

java - android:如果不满足某些条件,则不应单击 RadioButton

java - 了解 "this"在 Java 中的使用

java - 升级到 java 7u72 后 Web 启动应用程序无法启动

java - String [] 和 String... (Var-args) 在内部工作时是否相同?

java - 异常堆栈跟踪中的未知来源

java - 如果数字在数组内,则删除索引

java - 在 Maven 项目中获取 Tomcat 依赖项错误

for-loop - CICS 中 JVM 不受支持的版本