Alright, I have been doing the following (variable names have been changed):
FileInputStream fis = null;
try
{
fis = new FileInputStream(file);
... process ...
if (fis != null)
fis.close();
}
catch (IOException e)
{
... blah blah blah ...
}
Recently, I started using FindBugs, which suggests that I am not properly closing streams. I decide to see if there's anything that can be done with a finally{} block, and then I see, oh yeah, close() can throw IOException. What the hell are people supposed to do here? The Java libraries throw too many checked exceptions.
UPDATE: Dang, that's what I figured should be done. Blech, oh well.