90 votes

Est-ce que j'utilise correctement le try-with-resources de Java 7 ?

Je m'attends à ce que le lecteur en mémoire tampon et le lecteur de fichiers se ferment et que les ressources soient libérées si l'exception est levée.

public static Object[] fromFile(String filePath) throws FileNotFoundException, IOException
{
    try (BufferedReader br = new BufferedReader(new FileReader(filePath)))
    {
        return read(br);
    } 
}

Cependant, est-il nécessaire d'avoir un catch clause pour une fermeture réussie ?

EDIT :

Essentiellement, le code ci-dessus en Java 7 est-il équivalent au code ci-dessous pour Java 6 :

public static Object[] fromFile(String filePath) throws FileNotFoundException, IOException
{

    BufferedReader br = null;

    try
    {
        br = new BufferedReader(new FileReader(filePath));

        return read(br);
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        try
        {
            if (br != null) br.close();
        }
        catch(Exception ex)
        {
        }
    }

    return null;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X