Форум: "Начинающим";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
ВнизНе ловится класс исключения Найти похожие ветки
← →
Megabyte © (2007-05-17 14:31) [0]Парсю xml-файлы, формирующиеся в одной папке сторонним ПО. Бывает, что файл создан некорректно(редко), то я отлавливаю на общее исключение(Exeption) и просто говорю, что процедура не смогла пропарсить файл и он потом кидается в определенную папку.
Понадобилось разделить ошибки парсинга от остальных.
Выяснил класс возникающих исключений(DomException), в обработчике Except пытаюсь отловить ислючение этого класса, обработчик игнорируется, т.е. как-будто его нет или исключение получается другого класса. Не могу понять причину?!try
...
except
on E : DomException do
begin
любое действие, кроме showmessage(e.ClassName);
end;
on E: Exception do
begin
showmessage(e.ClassName);
//result := false;
end;
end; //except
В результате выдается сообщение "DomException"!
← →
clickmaker © (2007-05-17 14:39) [1]чем парсишь? TXmlDocument?
← →
Сергей М. © (2007-05-17 14:53) [2]try
...
except
on E : DomException do
begin
...
end;
else
showmessage(e.ClassName);
end;
← →
Megabyte © (2007-05-17 16:02) [3]
> clickmaker © (17.05.07 14:39) [1]
чем парсишь? TXmlDocument?
TXMLTransform
> Сергей М. © (17.05.07 14:53) [2]
Не понял, что это? Это даже не скомпилится...
← →
Сергей М. © (2007-05-17 16:10) [4]
> Megabyte © (17.05.07 16:02) [3]
>
>
> Это даже не скомпилится
Тебе разжевать, в рот положить и поглотить ?
Или сам дотумкаешь паскаль-синтаксис подправить ?
← →
Megabyte © (2007-05-17 16:12) [5]
> Сергей М. © (17.05.07 16:10) [4]
Ты написал ахинею, а мне предлагаешь что-то додумать...
Откуда я знаю, что ты имел ввиду. Если то, что использовать конструкцию if...else, то это можно конечно. Но чесать левое ухо правой ногой - изврат. Хотелось бы разобраться!
← →
Сергей М. © (2007-05-17 16:14) [6]
> Megabyte © (17.05.07 16:12) [5]
> Ты написал ахинею
Да неужели ?)
И в справке по ON-clause - тоже ахинея, так надо понимать твои претензии ?)
← →
Сергей М. © (2007-05-17 16:16) [7]
> Хотелось бы разобраться
Любые "разборки" начинай с чтения справки.
И только после этого претендуй на роль обвинителя кого бы то ни было в ахинее)
← →
Megabyte © (2007-05-17 16:28) [8]
> Сергей М. © (17.05.07 16:16) [7]
Да какие разборки, что ты :)
Я реально не понял, что ты этим хотел сказать!
Только объявление else ничего не изменило.try
...
except
on E : DomException do
begin
любое действие, кроме showmessage(e.ClassName);
end;
on E: Exception do
begin
showmessage(e.ClassName);
end;
end; //except
по сути одно и то же
try
...
except
on E : DomException do
begin
любое действие, кроме showmessage(e.ClassName);
end;
else
showmessage("other");
end;
end; //except
Все равно не ловит класс сообщения DomException, хотя возникает именно оно!
← →
Сергей М. © (2007-05-17 16:34) [9]
> хотя возникает именно оно
Значит не "именно оно".
← →
clickmaker © (2007-05-17 16:36) [10]if (e.ClassName = "DomException") then
ы?
← →
Megabyte © (2007-05-17 16:46) [11]Ну только так и делать придется. Просто хотел по-грамотному. :)
> try
...
except
on E: Exception do
begin
if (e.ClassName = "DomException") then
showmessage("ошибка парсинга")
else
showmessage(e.ClassName);
//result := false;
end;
end; //except
Выдает сообщение "ошибка парсинга". %)
з.ы. Класс исключений DomException реализован в файле XmlUtil, может реализация кривая...
← →
Сергей М. © (2007-05-17 16:50) [12]
> может реализация кривая...
Судя по отсутствию традиционного EDomException, "кривизны" там немало.
← →
Megabyte © (2007-05-17 16:52) [13]Спасибо за попытку помочь. :)
← →
stakan © (2007-05-17 17:04) [14]
> Megabyte
Утебя часом в uses XMLDom нет?
← →
clickmaker © (2007-05-17 17:12) [15]
> DomException реализован в файле XmlUtil
и до кучи в xmldom
xmlutil значицца нужно после ставить или убрать из юзес xmldom
← →
stakan © (2007-05-17 17:18) [16]
> и до кучи в xmldom
> xmlutil значицца нужно после ставить или убрать из юзес
> xmldom
>
Или писатьon E: XmlUtil.DomException do ...
← →
Megabyte © (2007-05-17 17:40) [17]Вот блин, точно ведь. Все сделал, всем спасибо!
сделал как в [16]
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c