Подтвердить что ты не робот

Закрытие URLConnection и InputStream правильно?

Я видел много разных примеров использования HttpURLConnection + InputStream и закрывал их (или не закрывал) после использования. Это то, что я придумал, чтобы убедиться, что все закончилось после завершения, есть ли ошибка или нет. Это действительно?:

HttpURLConnection conn = null;
InputStream is = null;
try {
    URL url = new URL("http://example.com");

    // (set connection and read timeouts on the connection)
    conn = (HttpURLConnection)url.openConnection();

    is = new BufferedInputStream(conn.getInputStream());

    doSomethingWithInputStream(is);

} catch (Exception ex) {
} finally {
    if (is != null) {
        try {
            is.close();
        } catch (IOException e) {
        }
    }
    if (conn != null) {
        conn.disconnect();
    }
}

Спасибо

4b9b3361

Ответ 1

Yep.. Выполнение конечной части в конечном итоге было бы лучшей идеей, потому что, если код не сработает где-то, программа не будет достигать до .close(), .disconnect() операторов, которые мы сохраняем перед операторами catch...

Если код выходит из строя где-то, а исключение выбрасывается между программой, все равно, наконец, выполняется выполнение независимо от того, что выбрано исключение...