2015-12-23 2 views
4

Я искал завершенный пример CloseableHttpClient с помощью try-with-resources. Я смущен, если закрытие CloseableHttpClient также закрывает объект CloseableHttpResponse, который будет создан при вызове httpclient.execute(post). Нужно ли обертывать CloseableHttpResponse в try-with-resources?Использование CloseableHttpClient с try-with-ресурсами

Пример:

try(CloseableHttpClient httpclient = HttpClients.custom().build()) { 
    HttpPost post = new HttpPost(url); 
    CloseableHttpResponse res = httpclient.execute(post); 

    // do something with res 
} catch (Throwable e) { 
    // do something with error 
} 

ответ

6

Если вы хотите для réponse, чтобы принять участие в примерочной с-ресурсе, который вы делаете. Хотя по мере того, как вы уже уловили Исключения, вы можете закончить с} - никакой дополнительной уловки не требуется.

Технически это не является обязательным требованием в качестве реализации для close() в CloseableHttpResponse is empty

Oh. Не поймайте Throwable - это плохой стиль и может вызвать очень тяжелые ошибки.

+1

Спасибо, за подсказку. Это было похоже на базу кода, и я не знал ничего лучшего! Я изменю это. –

+0

@Jan У вас есть ссылка на это требование? – Chriki

+0

Мне жаль, что я не могу дать больше очков за «Не поймаю Throwable». – oleg

Смежные вопросы