Исправление
dzidzitop,
(текущая версия)
:
кто-то сам себе буратино. конструкция типа
resource = acquire();
try {
} finally {
release(resource);
}
это монолит. она должна (= обязана) выглядеть именно так - try сразу после resource = acquire();
на практике (проекты на той же Java 6) - во время code review несоответствие этому шаблону бросается в глаза. с try-with-resources возможностей ошибиться меньше, но это не более чем сахар к тому, что уже есть. важнее то, что там появилась возможность собирать suppressed exceptions, так что бросать исключения из finally или (неявно) из release фазы try-with-resources не приводит к утрате контекста возникновения ошибок.
а тот код должен собираться на Java 1.5, поэтому try-with-resources не используется. при этом важно то, что код без try-with-resources можно написать так же надёжно - есть простой шаблон.
Исходная версия
dzidzitop,
:
кто-то сам себе буратино. конструкция типа
resource = acquire();
try {
} finally {
release(resource);
}
это монолит. она должна (= обязана) выглядеть именно так - try сразу после resource = acquire();
на практике (проекты на той же Java 6) - во время code review несоответствие этому шаблону бросается в глаза. с try-with-resources возможностей ошибиться меньше, но это не более чем сахар к тому, что уже есть. важнее то, что там появилась возможность собирать suppressed exceptions, так что бросать исключения из finally или (неявно) из release фазы try-with-resources не приводит к утрате контекста возникновения ошибок.