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

Вниз

Обработка исключительной ситуации   Найти похожие ветки 

 
Alex Shulg ©   (2002-11-28 16:24) [0]

Добрый день, друзья. Прошу о помощи.
Моя программа вызывает один процесс, который иногда вызывает исключительные ситуации, а я стараюсь их обработать:

try
...
except
...
on E:EInvalidMatch do
begin
...
end;
on E:EInvalidPointer do
begin
...
end;
else
begin
...
end;
end; //try

Проблема в том, что в блоках on...begin..end я могу получить сообщение об ошибке (E.Message), но мне хотелось бы, чтобы и в блоке else я тоже мог получить данное сообщение. Я не знаю, почему происходит исключительная ситуация, все возможные исключения, вроде бы обрабатываю, но видать не все. Как узнать, что за ошибка? (В процессе отладки это невозможно). Зарание благодарю.


 
exit   (2002-11-28 16:41) [1]

А может так:

try
...
except on E: Exception do
begin
if MessageBox(Application.Handle, PChar(E.Message), PChar(String(E.ClassName)),
MB_YESNO+MB_SYSTEMMODAL+MB_DEFBUTTON2) = mrYes then
begin
...
end else
begin
...
end;
if E.ClassType = EAccessViolation then ...
if E.ClassType = EDBEngineError then ...
end;
end;


 
oomneeq ©   (2002-11-28 16:51) [2]

вместо else пиши
on E:Exception do
begin
...
end;
этот блок будет ловить все остальные, не пойманые вышестоящими

важно, чтоб этот блок стоял самым последним.


 
pasha_golub ©   (2002-11-28 17:44) [3]

on E: EAbort
...

Тоже ловит все подряд...


 
Dimka Maslov ©   (2002-11-28 19:42) [4]

else begin
if ExceptObject is Exception then S := (ExceptObject as Exception).Message
end;


 
TankMan ©   (2002-11-28 21:13) [5]

Удалено модератором


 
TTCustomDelphiMaster ©   (2002-11-28 21:49) [6]

Удалено модератором


 
Кокандокало   (2002-11-29 13:05) [7]

Да блин... ну нифига не работает... Может это потому , что в Дельфи это запускаю??

try
// Тут вызов сокета
except
on E: Exception do begin MessageDlg("Socket Error", mtError, [mbOk], 0) end;
else ShowMessage("Socket Error");


Дельфи вылетает с ошибкой и все тут.. показывает свою гребанную зеленую стрелочку посередине между try и except и все =((((
И никаких MessageDlg =((((

Кстати, что надо написать в uses чтобы ловить ESocketError ?


 
Кокандокало   (2002-11-29 17:18) [8]

Ну ?
Никто не знает?


 
FreeLancer ©   (2002-11-29 17:28) [9]

Тебе же уже все сказали.
А стрелочка то - голубая.


 
oomneeq ©   (2002-11-29 18:20) [10]

on E: Exception do begin MessageDlg("Socket Error", mtError, [mbOk], 0) end;
else ShowMessage ...

Не будет никогда никакого else!
on E: Exception - всех переловит!


 
TankMan ©   (2002-11-29 21:02) [11]

>>TTCustomDelphiMaster
Усе спасибо... разобрался и понял :)


 
Victor_Cr ©   (2002-11-29 23:46) [12]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
3-27876
skiph
2002-11-21 06:35
2002.12.09
Ошибка запроса


3-27802
stoper
2002-11-19 21:15
2002.12.09
Первые шаги в SQL. HELP!!! HELP!!!HELP!!!


6-28179
Sergey2
2002-10-08 14:55
2002.12.09
Нужна помощь.


1-28062
skirdov
2002-11-27 23:49
2002.12.09
Редактирование данных в Edit, Combobox, StringGrid и пр.


1-28013
AlexandrRya
2002-11-29 23:38
2002.12.09
netapi32.dll