【发布时间】:2015-01-25 10:34:10
【问题描述】:
我读到我们不需要显式关闭资源,它将由 java 本身关闭,假设我编写了代码。
try(FileInputStream fis = new FileInputStream("");){
// code to to somethings
}
FileInputStream 将被自动关闭,如果在关闭时产生错误,它将抑制该表达式。
那么如果在关闭一个FileInputStream的时候抛出了异常,由于异常会被抑制,所以资源没有关闭,会不会产生资源泄漏?
【问题讨论】:
-
请注意,如果从 try 块中抛出异常,它只会抑制异常。通过在抛出的异常上调用
getSuppressed()仍然可以使用被抑制的异常。
标签: java java-7 try-with-resources resource-leak