Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
ArtemFM
238 / 221 / 163
Регистрация: 10.09.2015
Сообщений: 834
#1

Try-with-resources для XMLStreamReader

07.10.2017, 13:59. Просмотров 160. Ответов 1
Метки нет (Все метки)

Посоветуйте, как сделать try-with-resources для XMLStreamReader

Если бы XMLStreamReader был имплементирован от Cloneable, а тот в свою очередь имплементирован от AutoClosable, то
тогда вопросов бы не было

Java
1
2
try (XMLStreamReader xml = factoryXML.createXMLStreamReader(input)) {
}
но этот класс не имплементирован. Есть "вариант для бедных" так сказать, используя библиотеку Google Guava
com.google.common.io.Closer

но в проекте нельзя использовать библиотеки не из стандартного пакета jdk...

Есть способ такой:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
XMLStreamReader stream = factoryXML.createXMLStreamReader(input);
Throwable mainThrowable = null;
 
try {
    // что-то делаем со stream
} catch (Throwable t) {
    // сохраняем исключение
    mainThrowable = t;
    // и тут же выбрасываем его
    throw t;
} finally {
     if (mainThrowable == null) {
         // основного исключения не было. Просто вызываем close()
         stream.close();
     }
     else {
         try {
            stream.close();
         } catch (Throwable unused) {
             // игнорируем, так как есть основное исключение
             // можно добавить лог исключения (по желанию)
         }
     }
}
но он громоздкий по сути...

Может кто-нибудь имеет опыт использовать try-with-resources для Java ниже 6 версии или классов не имлементируемых AutoClosable?!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2017, 13:59
Ответы с готовыми решениями:

Try-with-resources
Доброго времени суток! Подскажите, как правильно переписать этот с использованием конструкции...

Try and release of resources
Здравствуйте! Интересует такой вопрос, допустим у нас есть такой вот код: try ( ...

message-resources в Struts
в чем разница если в web.xml написать <init-param> ...

Предупреждение: "Тип My.Resources.Resources не содержит свойства с именем bg1"
Пожалуйста помогите у меня Предупреждение "Тип '...My.Resources.Resources' не содержит свойства с...

Resources не содержит определение для Contents
Вроде путь указан даже папка есть внутри Resources, но он ни как не воспринимает Contents. В...

1
korvin_
2128 / 1619 / 315
Регистрация: 28.04.2012
Сообщений: 5,820
07.10.2017, 21:19 #2
Цитата Сообщение от ArtemFM Посмотреть сообщение
Может кто-нибудь имеет опыт использовать try-with-resources для Java ниже 6 версии
Такового опыта нет ни у кого, т.к. try-with-resources появился в 7-й версии Java.

Цитата Сообщение от ArtemFM Посмотреть сообщение
или классов не имлементируемых AutoClosable?!
Экстендишь этот свой класс, указываешь нужный интерфейс, если нужно, имплементируешь, и вуа ля! Если, конечно, этот твой класс разрешает наследоваться от него. Иначе пишешь класс-обёртку, делов-то.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2017, 21:19

"WindowsFormsApplication1.Properties.Resources" не содержит определение для "png"
Есть массив: public string ask = { { "Банк выдаёт кредит под 20% годовых.", "mat12", "72800",...

Resources
Добавил к проекту в VS10 в Resources.resx два текстовых файла. Теперь они в папке проекта. Так вот...

Image Resources
Доброго времени! Поясните, будьте добры, два момента по картинкам: Момент 1: Что-то я никак не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru