问题标签 [try-with-resources]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
925 浏览

java - 为什么获取`Stream时BufferedReader没有关闭` 在 try-with-resources 中?

Stream在 try-with-resources 中使用 a时,应关闭阅读器。

鉴于这种:

...阅读器没有被关闭??

此测试失败:

0 投票
2 回答
1501 浏览

java - 如何使用资源尝试将while循环放入线程中?

如何将while循环放入线程中?

当我将while循环放入线程时,它只是抛出java.net.SocketException: Socket closed,因为大概是因为try with resources works. 但是,我不知道如何在这种尝试中使用线程。

因为会有多个线程,一个用于读取本地InputStream,一个用于远程OutputStream,似乎有必要将线程放入,try反之亦然..?

0 投票
1 回答
201 浏览

java - maven try-with-resources 中的 neo4j EmbeddedNeo4j.java 错误

我正在尝试运行 Neo4j 手册第 32 章中关于使用嵌入在 Java 应用程序中的 Neo4j 的第一个示例,该文件是EmbeddedNeo4j.java,我使用的是 maven,具有适当的 Neo4j 依赖项。我收到一个编译错误,似乎表明我正在使用 Java 1.5,但我看到的所有内容都告诉我我正在使用 Java 1.7。

这是错误:

这就是我认为 Maven 应该使用 Java 1.7 的原因:

[root@cerif t02]# mvn -version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 13:51:28+0000)
Maven 主页:/opt/apache-maven-3.0.5
Java 版本:1.7.0_21 ,供应商:Oracle Corporation
Java 主页:/usr/java/jdk1.7.0_21/jre
默认语言环境:en_US,平台编码:UTF-8
操作系统名称:“linux”,版本:“3.9.3-x86-linode52”,arch :“i386”,家庭:“unix”
[root@cerif t02]#

关于追踪我为什么会收到此错误的任何建议?

0 投票
2 回答
5571 浏览

java - try-with-resource 中的 close() 出现异常

我正在阅读有关 JDK7 中的 try-with-resource 的信息,当我考虑升级我的应用程序以使用 JDK7 运行时,我遇到了这个问题。

例如,当使用 BufferedReader 时,write 抛出 IOException 并且 close 抛出 IOException .. 在 catch 块中,我担心 write 抛出的 IOException .. 但我不太关心 close 抛出的那个 ..

数据库连接也有同样的问题..和任何其他资源..

例如,我创建了一个可自动关闭的资源:

现在使用它时:

如何在不必为诸如 BufferedReader 之类的类创建包装器的情况下区分此类异常?

大多数情况下,我将资源关闭在 finally 块内的 try/catch 中,而不关心如何处理它。

0 投票
2 回答
132 浏览

java - 为什么 Try-With-Resources 不会每次都创建一个新实例

我正在尝试使用 TestNG 编写单元测试以将测试数据保存到数据库。我正在使用 DataProvider 创建测试数据,如下所示:

我的测试用例正在使用try-with-resources,如下所示:

第一个数据保存成功。但是,try 块中的 PersistenceUtil 不会再次创建/初始化,因此 EntityTransaction 为空。因此,其余数据会发生 NPE 异常。为什么 PersistenceUtil 没有在 try-with-resources 块中再次初始化。反正有没有达到同样的效果?

0 投票
1 回答
168 浏览

java - 处理(或抑制)由 AutoCloseable 引发的异常的推荐方法是什么?

我正在升级一些需要Iterables敏感的现有 API AutoCloseable。例如,给定:

如果它是可关闭的,我想要关闭迭代器的方法。这是我到目前为止所得到的:

鉴于 JDK 文档是如何引用的Throwable.getSuppressed(),这段代码是否应该做类似于以下的事情?

0 投票
1 回答
1550 浏览

stream - 关闭流链和尝试资源

我关于stackoverflow的第一个问题,我退出了;)

使用流链时,最好只关闭链中的最后一个流,因为 close() 操作应该通过链的所有流传播。

当结合 try-with-ressource 语句和流链接时,什么被认为是好的做法?

a) 在 try 语句中创建所有流:

或者 b) 只是链的最后一个成员:

我猜这两个版本最终都会起作用,但我假设 a) 会生成重复的 close() 调用,不是吗?

0 投票
4 回答
2510 浏览

java - 在 try-with-resource 中手动关闭

假设我正在使用一个文档记录不佳的第三方库,它没有可用的源代码。库的方法之一接受InputStream加载各种数据。

由于缺乏文档,尚不清楚该方法是否在完成后关闭流,因此一种可能的解决方案可能是将调用包装在 try-with-resource 中,只是为了安全起见。

不幸的是,Java 规范(据我所知)没有提及如果在 try-with-resource 中手动关闭资源会发生什么。有没有人碰巧知道?

0 投票
5 回答
1703 浏览

java - 来自 Eclipse 的 Java try-with 资源警告

为什么对 Eclipse 来说,这是用 try-with 臂来管理的?

有更好的方法来处理这种情况吗?还是只是来自日食的垃圾警告?

这种情况无效:

0 投票
2 回答
2089 浏览

java - 我的 AutoCloseable.close() 实现可以检测到潜在的异常吗?

在使用 Java 7 try-with-resources 语句实现 anAutoCloseable时,我想知道 try 块中是否存在异常。例如:

为了说明这一点:

现在,从了解try-with-resources 语句如何转换为 bytecode,我想这是不可能的。但是是否有任何(可靠的!)技巧通过检测/反射/一些未记录的编译器功能允许我RuntimeException从内部访问上述内容AutoCloseable.close()

注意:我是 API 设计人员,我无法控制 API 使用者的 try-with-resources 代码。因此必须在AutoCloseable现场进行实施