Col seguente codice leggo il contenuto di un file (in una lista).
Voglio che ogni errore sia gestito dal metodo chiamante (e quindi non qui).

codice:
package mypackage.begin;

import java.io.*;
import java.util.*;

public class ExceptionClass2 
    {
    public void myMethod2() throws Exception
        {   	
        List<String> lines = new ArrayList<String>();
        BufferedReader in = new BufferedReader(new FileReader("C:/my-file.txt"));            
        String str;
        while ((str = in.readLine())!=null) lines.add(str);          
        in.close();
        }
    }
Non capisco però una cosa: se nel bel mezzo della lettura "succede qualcosa" che la interrompe, la riga in.close() rimane non eseguita.
Il file rimane aperto?