java - 如何正确关闭资源?

标签 java exception

我有所有传播异常的方法,然后我在一个地方处理,但我意识到了一些事情。

假设我有这样的方法

public void foo() throws Exception e {
  Statement stmt = createStatement();
  doSomething(stmt);
  stmt.close();
}

我的问题是,如果 doSometing() 方法抛出异常,语句将不会关闭,但我不想在那里处理异常。 try and catch 的正确方法是只重新抛出异常并最终关闭语句吗?

最佳答案

public void foo() throws Exception e {

  Statement stmt = null ; 
  try {
    stmt = createStatement();
    doSomething(stmt);
  } finally {
    if(stmt != null) 
      stmt.close();
  }
}

关于java - 如何正确关闭资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2362686/

相关文章:

android - IllegalArgumentException:指定为非null的参数为null

java - 如何一次捕获所有错误代码

java - 计算一个方法被调用的次数?

java - SQL 错误 : 17008, SQLState:空

java - 不知道发生异常时如何转发404页面

flutter - 在抖动中出现空错误时调用了PhotoURL

java - 使用 Commons Compress 将目录压缩为 tar.gz

java - 使用 Hibernate、Spring、Struts 2 在 View 模式中打开 session

java - Mysql数据截断: Data truncation: Out of range value for column 'column' at row 1

Java异常处理