LINUX.ORG.RU

История изменений

Исправление 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 не приводит к утрате контекста возникновения ошибок.