powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка исключения при разборе XML
16 сообщений из 16, страница 1 из 1
Обработка исключения при разборе XML
    #33787299
Всем привет!

Прошу помощи... Программирую на C++ Builder 6... Обрабатываю xml-файл пытаюсь получить значение атрибута вот так
SG_Paket->Cells[3][1] = RootNode->ChildNodes->Nodes[1]->Attributes[WideString("EDReceiver")];

Но дело в том что этот атрибут может быть, а может и нет.
Как обработать сию ситуацию?
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33787990
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подозреваю, что вернет NULL, так как установка аттрибуту значения NULL удаляет аттрибут.
Ну а если нет, то наверно выбрасывает исключение, тогда бороться как try{}catch
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788045
Примерно вот так
try{
SG_Paket->Cells[3][1] = RootNode->ChildNodes->Nodes[1]->Attributes[WideString("EDReceiver")];
}catch(...){SG_Paket->Cells[3][1] = 0;}

Работает, но только сначала ругается благим матом, а потом ноль пишет, как сделать так, чтобы ноль писался без сообщений?
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788077
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейПыриковкак сделать так, чтобы ноль писался без сообщений?
Abort
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788086
А поконкретнее? Куда именно писать Abort()...
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788098
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейПыриковА поконкретнее? Куда именно писать Abort()...
В catch. Чтобы заглушить благой мат.
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788110
Если вот так

try{
SG_Paket->Cells[3][1] = RootNode->ChildNodes->Nodes[1]->Attributes[WideString("EDReceiver")];
}catch(...){SG_Paket->Cells[3][1] = 0;Abort();}
то не помогает...
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788123
ТОчнее помогает, но и выполнение функции заканчивается, а у меня после этого ещё куча операторов...
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788150
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейПыриковТОчнее помогает, но и выполнение функции заканчивается, а у меня после этого ещё куча операторов...
__finally
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788157
Опять же...
А как именно?
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788158
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitrii K.__finally
ну что ты такое пишешь, у него на исключении вся функция
прервется всё равно. Надо строчку, где ловится исключение,
вынести отдельной функцией, в которой будет try ... catch и
возвращать из нее осмысленный результат
Хотя думается мне, что в самой библиотеке должен быть
механизм проверки, есть ли нужный атрибут

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788165
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейПыриковОпять же...
А как именно?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    int i= 1 ;
    try{
        try{
            i/= 0 ;
        }
        catch(const Exception& e)
        {
          Abort;
        }
    }
    __finally
    {
        i= 0 ;
    }
Сойдёт?
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788176
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitrii K.Сойдёт?
Кстати, когда-то замечал я какие-то неправильности с
многоэтажными try ... catch ... finally, с тех пор просто
выношу каждый блок в отдельную функцию

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788191
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас
ну что ты такое пишешь, у него на исключении вся функция
прервется всё равно.

Можно тоьлко нужный кусок обтрайкэчить...
Карабас Барабас
Надо строчку, где ловится исключение,
вынести отдельной функцией, в которой будет try ... catch и
возвращать из нее осмысленный результат

Согласен, так получше будет, особенно если используется не только в одном месте.
Карабас БарабасХотя думается мне, что в самой библиотеке должен быть механизм проверки, есть ли нужный атрибут

А вот это уже не знаю, XML не пользовал ишо ))
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33788198
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitrii K.А вот это уже не знаю, XML не пользовал
ишо ))
аналогично :)
интересно, кто-нибудь из отвечавших пользовал ??

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Обработка исключения при разборе XML
    #33789340
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Млин, чего за зоопарк развели?

Если запускать не под Builder'ом, матом благим не ругается, все нормально жуется в catch. ПРи отладке в среде ругаться будет, пока не отключить в Debugger Options "Stop on Delphi Exceptions".

Вариации с Abort() не помогут, так как не понятно, чего они лечат: Abort() выбрасывает "молчаливое" EAbort, а нафиг здесь еще одно исключение?

________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка исключения при разборе XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]