java - 在 finally block 中抛出异常

标签 java exception try-catch finally

有没有一种优雅的方式来处理 finally block 中抛出的异常?

例如:

try {
  // Use the resource.
}
catch( Exception ex ) {
  // Problem with the resource.
}
finally {
   try{
     resource.close();
   }
   catch( Exception ex ) {
     // Could not close the resource?
   }
}

如何避免 finally block 中的 try/catch

最佳答案

我通常这样做:

try {
  // Use the resource.
} catch( Exception ex ) {
  // Problem with the resource.
} finally {
  // Put away the resource.
  closeQuietly( resource );
}

其他地方:

protected void closeQuietly( Resource resource ) {
  try {
    if (resource != null) {
      resource.close();
    }
  } catch( Exception ex ) {
    log( "Exception during Resource.close()", ex );
  }
}

关于java - 在 finally block 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/481446/

相关文章:

java - 在抛出异常时配置 ResponseEntity 主体

java - 如何在 Controller 中捕获 java.lang.NumberFormatException.forInputString 异常?

c# - 检查单元测试中是否抛出参数

java - 当 json 中有韩语时,使用 embulk-output-bigquery 插件 Embulk 作业失败

java - 如何在 JavaFX Canvas 上用鼠标画一条连续的线?

java - Android:相同的代码行无法在单独的方法中工作

php - 尝试循环的语法错误

java - IllegalArgumentException 未被捕获或丢失某些内容

java - 使用数据库数据自动/手动设置列宽 JTable

java - 从将在 Android 应用程序中具有全局范围的代码中设置区域设置