Описание тега try-with-resources

Оператор try-with-resources - это оператор try в Java, который объявляет один или несколько ресурсов. Ресурс - это объект, который необходимо закрыть после того, как программа завершит работу с ним. Оператор try-with-resources гарантирует, что каждый ресурс будет закрыт в конце оператора.
3 ответа

Какая польза от блока finally при попытке использовать ресурсы (Java 7)?

finally Блок в основном используется для предотвращения утечек ресурсов, которые могут быть достигнуты в close() метод класса ресурсов. Какой смысл в блоке finally с try-with-resources утверждение, например: class MultipleResources { class Lamb impl…
18 мар '16 в 10:02
1 ответ

try-with-resources: дает ли Java какие-либо гарантии порядка вызовов.close()?

При использовании try-with-resources в Java 7 есть какие-либо гарантии относительно порядка, в котором .close() называется? Вот пример кода из Oracle, показывающий эту функцию: try ( java.util.zip.ZipFile zf = new java.util.zip.ZipFile(zipFileName);…
27 авг '12 в 05:30
2 ответа

Куча JVM продолжает увеличиваться. Зачем?

executor = Executors.newScheduledThreadPool(1); Runnable helloRunnable = new Runnable() { public void run() { controller2.GetAIntFromDatabase(columblName); } }; executor.scheduleAtFixedRate(helloRunnable, 0, 10, TimeUnit.MILLISECONDS); эта часть про…
0 ответов

"Заявление о попытках с ресурсами" действительно работает с объектом-курсором Android?

Поскольку Java ввела этот оператор с 1.7, я принял это правило, чтобы написать свой оператор, связанный с курсором, так: try (Cursor cursor = context.getContentResolver().query(queryAccountUri, null, null, null, null)) { if (cursor != null &&amp…
1 ответ

Есть ли риск в оболочке AutoCloseable для java.util.concurrent.locks.Lock?

С try-with-resource Введенный в Java 7, я был удивлен, увидев, что Lock не был дооснащен, чтобы быть AutoCloseable, Казалось, довольно просто, поэтому я сам добавил это следующим образом: class Lock implements AutoCloseable { private final java.util…
15 май '13 в 20:26
0 ответов

Весна, как я могу ввести автозаполняемый ресурс

Поэтому мой вопрос заключается в том, как я могу внедрить Autocloseable ресурс, который в идеале должен использоваться с Java 7 попробовать с функцией ресурса. Правильно ли использовать приведенный ниже код с использованием lombok? AppConfig.java @C…
1 ответ

Должен ли поставщик использоваться для подачи файлового потока?

Мне нужно было предоставить Stream файла более одного раза, чтобы различные операции могли выполняться с ним в разное время, я использовал следующий поставщик: Supplier<Stream<String>> linesSupplier = () -> { try { return Files.lines(…
15 ноя '17 в 09:51
2 ответа

Akka Actors терпит неудачу, VerifyError: Несогласованные кадры стековой карты в целевой ветви

У меня есть Java-приложение, в котором я использую Akka Typed Actors. Код не содержит ошибок в Eclipse, но когда я запускаю свое приложение, он вылетает и печатает эту ошибку: Exception in thread "main" java.lang.VerifyError: Inconsistent stackmap f…
3 ответа

Почему мы должны как объявлять, так и определять ресурсы в блоке try-with-resource?

try(PrintWriter f = new PrintWriter(new BufferedWriter(new FileWriter("abc.txt")));) {} catch(IOException ex) { ex.printStackTrace(); } Выше работает отлично. Но, когда я делаю PrintWriter f; try(f = new PrintWriter(new BufferedWriter(new FileWriter…
17 окт '13 в 10:06
4 ответа

Почему выборочный блок try-with-resources является необязательным?

Я читал, что catch блок в try-with-resources является необязательным. Я пытался создать Connection объект в блоке try-with-resources без последующего catch блок, только чтобы получить ошибку компилятора из eclipse: "Необработанный тип исключения SQL…
26 авг '14 в 02:18
8 ответов

Что такое исключенное исключение?

В комментарии (от пользователя soc) к ответу на вопрос об оптимизации хвостовых вызовов упоминается, что в Java 7 появилась новая функция, называемая "исключенные исключения", из-за "добавления ARM" (поддержка процессоров ARM?). Что такое "исключенн…
5 ответов

Почему этот код не закрывает соединения JDBC? (Java 7 Autocloseable неожиданное поведение)

Используя Java 7u5 с конструкцией try-with-resources, следующий код, по- видимому, пропускает соединения jdbc: try (Connection connection = ..; PreparedStatement stmt = ..) { stmt.setString(..); return stmt.executeUpdate() > 0; } Следующий фрагме…
16 июл '12 в 01:17
1 ответ

Как использовать Try-with-resources с оператором if?

У меня есть простой код: try (FileReader file = new FileReader(messageFilePath); BufferedReader reader = new BufferedReader(file)) { String line; while ((line = reader.readLine()) != null) { //// } } Я хочу написать что-то вроде этого: FileReader fi…
24 фев '15 в 17:21
4 ответа

Попробуйте с помощью ресурсов и вернуть операторы в Java

Мне интересно, если размещение оператора return внутри блока try-with-resources предотвращает автоматическое закрытие ресурса. try(Connection conn = ...) { return conn.createStatement().execute("..."); } Если я напишу что-то подобное, Соединение буд…
08 апр '14 в 20:42
0 ответов

Попытка с ресурсами инициализировать в ноль

Я рефакторинг некоторого старого кода, который выглядит следующим образом: OutputStreamWriter osw1 = null; OutputStreamWriter osw2 = null; try { // Some statements... if (condition1) osw1 = createAnOutputStreamWriter(params1...); // Some more statem…
16 авг '17 в 14:33
1 ответ

Чтение и запись в один и тот же файл с использованием try-with-resources

Я пытаюсь сделать программу, которая получает указанный Stringи удаляет каждый случай этого String в текстовом документе. Текстовый файл, который используется для чтения / записи, одинаков. Используемые аргументы получены из cmd в следующем порядке:…
1 ответ

Почему метод close() ресурса вызывается перед catch в конструкции try-with-resources в Java?

Я случайно понял, что это так. Смотрите этот пример ниже: public class AutoClosableTest { public static void main(String[] args) throws Exception { try (MyClosable instance = new MyClosable()) { if (true) { System.out.println( "try" ); throw new Exc…
31 июл '14 в 10:59
2 ответа

Наличие проблем с "попробуй с ресурсами"

УТОЧНИТЬ: Я не могу даже скомпилировать из-за сообщений от Eclipse. Первый фрагмент кода: input а также inputBuffer не признаются Второй фрагмент кода, Eclipse хочет, чтобы я переключил переключатель "Соответствие и JRE на 1,7" Я новичок в попытке п…
16 дек '12 в 18:28
3 ответа

Зачем закрывать метод java.lang.AutoCloseable выдает исключение, а закрывать метод java.io.Closeable выбрасывает IOException?

Я читал эту ссылку для try-with-resources и это говорит: Близкий метод Closeable интерфейс выдает исключения типа IOException в то время как метод закрытия AutoCloseable интерфейс выдает исключения типа Exception, Но почему? Близкий метод AutoClosea…
21 сен '14 в 13:36
3 ответа

Реализация AutoCloseable - как узнать, произошло ли исключение в блоке try?

У нас есть класс, который мы написали, который открывает соединение с сервером. Когда вы закончите с этим, вы должны либо сказать это commit если все прошло успешно, или скажите это rollback если что-то пошло не так. Так что сейчас у нас есть много …
26 июл '18 в 14:28