问题标签 [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.
java - 为什么获取`Stream时BufferedReader没有关闭` 在 try-with-resources 中?
Stream
在 try-with-resources 中使用 a时,应关闭阅读器。
鉴于这种:
...阅读器没有被关闭??
此测试失败:
java - 如何使用资源尝试将while循环放入线程中?
如何将while
循环放入线程中?
当我将while
循环放入线程时,它只是抛出java.net.SocketException: Socket closed
,因为大概是因为try with resources works
. 但是,我不知道如何在这种尝试中使用线程。
因为会有多个线程,一个用于读取本地InputStream,一个用于远程OutputStream,似乎有必要将线程放入,try
反之亦然..?
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]#
关于追踪我为什么会收到此错误的任何建议?
java - try-with-resource 中的 close() 出现异常
我正在阅读有关 JDK7 中的 try-with-resource 的信息,当我考虑升级我的应用程序以使用 JDK7 运行时,我遇到了这个问题。
例如,当使用 BufferedReader 时,write 抛出 IOException 并且 close 抛出 IOException .. 在 catch 块中,我担心 write 抛出的 IOException .. 但我不太关心 close 抛出的那个 ..
数据库连接也有同样的问题..和任何其他资源..
例如,我创建了一个可自动关闭的资源:
现在使用它时:
如何在不必为诸如 BufferedReader 之类的类创建包装器的情况下区分此类异常?
大多数情况下,我将资源关闭在 finally 块内的 try/catch 中,而不关心如何处理它。
java - 为什么 Try-With-Resources 不会每次都创建一个新实例
我正在尝试使用 TestNG 编写单元测试以将测试数据保存到数据库。我正在使用 DataProvider 创建测试数据,如下所示:
我的测试用例正在使用try-with-resources,如下所示:
第一个数据保存成功。但是,try 块中的 PersistenceUtil 不会再次创建/初始化,因此 EntityTransaction 为空。因此,其余数据会发生 NPE 异常。为什么 PersistenceUtil 没有在 try-with-resources 块中再次初始化。反正有没有达到同样的效果?
java - 处理(或抑制)由 AutoCloseable 引发的异常的推荐方法是什么?
我正在升级一些需要Iterable
s敏感的现有 API AutoCloseable
。例如,给定:
如果它是可关闭的,我想要关闭迭代器的方法。这是我到目前为止所得到的:
鉴于 JDK 文档是如何引用的Throwable.getSuppressed()
,这段代码是否应该做类似于以下的事情?
stream - 关闭流链和尝试资源
我关于stackoverflow的第一个问题,我退出了;)
使用流链时,最好只关闭链中的最后一个流,因为 close() 操作应该通过链的所有流传播。
当结合 try-with-ressource 语句和流链接时,什么被认为是好的做法?
a) 在 try 语句中创建所有流:
或者 b) 只是链的最后一个成员:
我猜这两个版本最终都会起作用,但我假设 a) 会生成重复的 close() 调用,不是吗?
java - 在 try-with-resource 中手动关闭
假设我正在使用一个文档记录不佳的第三方库,它没有可用的源代码。库的方法之一接受InputStream
加载各种数据。
由于缺乏文档,尚不清楚该方法是否在完成后关闭流,因此一种可能的解决方案可能是将调用包装在 try-with-resource 中,只是为了安全起见。
不幸的是,Java 规范(据我所知)没有提及如果在 try-with-resource 中手动关闭资源会发生什么。有没有人碰巧知道?
java - 来自 Eclipse 的 Java try-with 资源警告
为什么对 Eclipse 来说,这是用 try-with 臂来管理的?
有更好的方法来处理这种情况吗?还是只是来自日食的垃圾警告?
这种情况无效:
java - 我的 AutoCloseable.close() 实现可以检测到潜在的异常吗?
在使用 Java 7 try-with-resources 语句实现 anAutoCloseable
时,我想知道 try 块中是否存在异常。例如:
为了说明这一点:
现在,从了解try-with-resources 语句如何转换为 bytecode,我想这是不可能的。但是是否有任何(可靠的!)技巧通过检测/反射/一些未记录的编译器功能允许我RuntimeException
从内部访问上述内容AutoCloseable.close()
?
注意:我是 API 设计人员,我无法控制 API 使用者的 try-with-resources 代码。因此必须在AutoCloseable
现场进行实施