好吧,我一直在做如下(变量名称已更改):关闭一个Java的FileInputStream
FileInputStream fis = null;
try
{
fis = new FileInputStream(file);
... process ...
}
catch (IOException e)
{
... handle error ...
}
finally
{
if (fis != null)
fis.close();
}
最近,我开始使用FindBugs的,这表明我没有正确关闭流。我决定查看是否有任何可以通过finally {}块来完成,然后我看到,哦,是的,close()可以抛出IOException。人们应该在这里做什么? Java库引发了太多的检查异常。
`fis`不可能在你测试的时候为空。它可以在缺失的`finally`块中为null,在那里你应该测试它并关闭它。但是自引入“试用资源”语法以来,这个问题已经过时了。 – EJP 2015-04-28 01:14:58
我修改了相应的代码,以免人们误导。 – 2015-04-28 14:23:57