当前位置: 首页 > 知识库问答 >
问题:

java中的Try-with-resources和return

陈宏胜
2023-03-14

我想知道在try-with-resources块中放入return语句是否会阻止资源被自动关闭。

try(Connection conn = ...) {
    return conn.createStatement().execute("...");
}

try-with-resources语句确保每个资源在语句结束时关闭。

如果由于return语句而始终无法到达语句的结尾,会发生什么情况?

共有1个答案

樊博雅
2023-03-14

基于Oracle的教程,“无论try语句是正常完成还是突然完成,[资源]都将被关闭”。它将突然定义为异常。

try内部返回是一个由JLS14.1定义的突然完成的示例。

 类似资料:
  • 问题内容: 我想知道将 return 语句放在 try-with-resources 块中是否会阻止资源自动关闭。 如果我这样写, 连接 会关闭吗?在Oracle文档中指出: try-with-resources语句可确保在语句末尾关闭每个资源。 如果由于return语句而从未到达该语句的末尾,该怎么办? 问题答案: 根据Oracle的教程,“无论try语句正常完成还是突然完成,[[资源]都将关闭

  • 主要内容:Java SE 7:Try-With-Resources基础知识,Java SE 7:Try-With-Resources规则,Java SE 9:Try-With-Resources改进在这篇文章中,我们将讨论Java SE 9中的一些改进语句。现在让我们开始学习这个构造。 Java SE 7:Try-With-Resources基础知识 Java SE 7引入了一个新的构造: 语句,用于更好的异常处理。 如果没有这个构造,开发人员必须编写大量冗余和难看的代码。 如果开发人员忘记正确

  • 下面的try with resources语句是来自Java文档的示例 根据文件, 用资源尝试语句确保每个资源在语句末尾关闭。 我的问题是,为什么我需要在try关键字之后立即在括号内声明资源。(如上面的BuffereReader) BufferReader实现了java。lang.AutoCloseable 所以为什么不支持这样的事情, 一旦退出尝试,就隐式关闭资源对象。(正如它所实现的自动关闭)

  • 问题内容: 我有一种使用JDBC从数据库中获取用户的方法: 我应该如何使用来改进此代码? 我已经尝试使用下面的代码,但是它使用了很多块,并且并没有太大地提高可读性。我应该以其他方式使用吗? 问题答案: 在你的示例中,无需进行外部尝试,因此你至少可以从3降为2,并​​且也不需要在资源列表的末尾关闭。使用两个try块的优点是所有代码都在前面显示,因此你不必引用单独的方法:

  • 本文向大家介绍如何在JDBC中使用try-with-resources?,包括了如何在JDBC中使用try-with-resources?的使用技巧和注意事项,需要的朋友参考一下 每当我们实例化并使用某些对象/资源时,都应显式关闭它们,否则有可能发生资源泄漏。 通常,我们使用finally资源使用close资源作为- 从JSE7开始,引入了try-with-resources语句。在这种情况下,我

  • 本文向大家介绍在Java 9中的try-with-resources中有效的最终变量?,包括了在Java 9中的try-with-resources中有效的最终变量?的使用技巧和注意事项,需要的朋友参考一下 在Try with Resource语句中使用的任何变量都需要在Try语句中声明,直到Java 8版本。从Java 9开始,此限制已删除,并且在Try块内使用了任何最终或有效的最终变量。实际上