Главная страница
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.014 c
3-27838
Леший
2002-11-20 17:25
2002.12.09
Скажите пожалуйста, как excel, перетащить данные в ibase


6-28160
neodiX
2002-10-07 14:12
2002.12.09
Как послать SYN-ACK пакет?


14-28283
ELKa
2002-11-19 14:34
2002.12.09
Ну что же никто так и не поможет что ли?


1-28063
DiJeT
2002-11-27 01:18
2002.12.09
По поводу GIF - ов


14-28297
Cr@sh
2002-11-19 18:02
2002.12.09
Помогите, кто-нибудь...