尝试使用资源:关闭 TWR 块中的资源时发生资源泄漏

Try with Resources: Resource leak while closing resources in TWR block

我读到我们不需要明确关闭资源,它将由 java 自己关闭,假设我已经编写了代码。

try(FileInputStream fis = new FileInputStream("");){
  // code to to somethings
}

FileInputStream 将自动关闭,如果在关闭时产生错误,它将抑制该表达式。

那么如果在关闭FileInputStream的时候抛出异常,由于异常会被抑制,资源没有关闭,会不会产生资源泄露?

So if while closing an FileInputStream an expression exception is generated, since the expression exception will be suppressed , the resource is not closed...

不知道它没有关闭,只是您在关闭它时遇到异常。

... Will it generate a resource leak ?

它可能会或可能不会造成泄漏,但您对此无能为力。如果您尝试关闭该资源,那么您就完成了您的工作。

但是 :只有在 如果 try 块(或 finally块附加到它)。如果在 try(或 finally)期间没有异常,关闭资源 的异常将不会 被抑制。