Pascal4eg

 Java | Фишки и трюки

try-with-resources

try (Connection cnn = dataSource. getConnection();
     PreparedStatement stmt = cnn.prepareStatement("SELECT * FROM operation");
     ResultSet rs = stmt.executeQuery()) {
    processOperations(rs);
} catch (Exception e) {
    LOGGER.error("Database error", e);
}

Благодаря конструкции "try-with-resources" вы можете элегантно и безопасно управлять ресурсами, такими как потоки, сокеты или другие объекты, требующие явного закрытия после использования. Это улучшение ввода-вывода позволяет автоматически закрывать открытые ресурсы после завершения блока try.

В блоке try может быть открыто несколько ресурсов и соответственно объявлено несколько переменных указывающих на них. Классы этих переменных должны реализовать интерфейс AutoCloseable.

После завершения блока try, даже в случае исключения, все эти ресурсы будут автоматически закрыты. Это существенно упрощает управление ресурсами и снижает вероятность утечек ресурсов.

try-with-resources доступен начиная с Java 7 и предоставляет удобный способ для обработки ресурсов и исключений, связанных с ними.