我有以下代码并使用java.util.logging.FileHandler
.
在这种情况下,我应该手动关闭 finally 块中的资源。
try {
fh = new FileHandler("Test.log");
logger.addHandler(fh);
...
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fh!=null) { fh.close() };
}
此代码有效。现在,我认为它可以实现Autocloseable
接口。因此,我决定使用try-with-resources
forFileHandler
以便自动关闭资源(以消除关闭资源的手动工作)。
我尝试的代码如下:
try(fh = new FileHandler("Test.log")) {
logger.addHandler(fh);
...
} catch (IOException e) {
e.printStackTrace();
}
但是这段代码不起作用。
它给出一个错误说:
The resource type FileHandler does not implement java.lang.AutoCloseable'
如果可能,如何使用 try-with-resources 自动关闭文件处理程序?
我需要手动关闭吗?或者我可以采取任何其他方法。