Я видел два способа приобретения и распоряжения ресурсами. Или:
Resource resource = getResource();
try { /* do something with resource */ }
finally { resource.close(); }
или
Resource resource = null;
try { resource = getResource(); /* do something with resource */ }
finally { if (resource != null) resource.close(); }
Мне было интересно, какой стиль предпочтительнее. Первый избегает условия if
, а второй (я полагаю) обрабатывает случай прерывания потока сразу после назначения, но до входа в блок try
. Какие еще плюсы и минусы имеют эти стили друг над другом? Какой из них лучше использовать?