Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Не ловится класс исключения   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.029 c
15-1177890843
Бедный_Чел
2007-04-30 03:54
2007.06.10
Нужен windows сервер


2-1179643152
А.Брей
2007-05-20 10:39
2007.06.10
Переменная


1-1174567523
Виталий Панасенко
2007-03-22 15:45
2007.06.10
Использование ZLib


2-1179733608
=Teddy=
2007-05-21 11:46
2007.06.10
Как загрузить в приложение и проиграть mp3 файл?


15-1178740607
lookin
2007-05-09 23:56
2007.06.10
Пароль от аськи