Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.042 c
2-1179425992
Alexdeil
2007-05-17 22:19
2007.06.10
График


2-1179578791
Dib
2007-05-19 16:46
2007.06.10
.bmp на кнопку.


9-1153230016
DevilDevil
2006-07-18 17:40
2007.06.10
Физический Движок


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


15-1179343459
raqy.style
2007-05-16 23:24
2007.06.10
А в чем разница?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский