Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
ВнизОбработка исключительной ситуации Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c