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

Вниз

Подавление всех Exception кроме определенного   Найти похожие ветки 

 
Человек   (2011-10-23 11:36) [0]

Есть код вида:

try
 Func();
except on E:Exception do
 if E is EMyException then
   raise EMyException.Create(E.Message);
end;

Смысл: нужно подавить все возможные exception, которые могут быть сгенерированы в функции Func(), кроме EMyException. Синтаксис Delphi позволяет сделать наоборот, т.е. подавить конкретный тип, а остальные пропустить.
Пробовал делать просто

except on E:Exception do
 if E is EMyException then
   raise E;
end;

Но такой код выдает AV.

Есть ли более красивое решение, чем то что я написал (заново создавать и генерировать Exception нужного типа, копируя все параметры старого)?


 
_Юрий   (2011-10-23 11:43) [1]

except on E:Exception do
if E is EMyException then
  raise;


 
Anatoly Podgoretsky ©   (2011-10-23 12:50) [2]

> Человек  (23.10.2011 11:36:00)  [0]

On EMyException do ....


 
sniknik ©   (2011-10-23 13:14) [3]

> Есть ли более красивое решение
есть. убрать "подавление" вообще. если прогу будут поддерживать, а не для "корзины" пишешь.

вот так к примеру, чтобы только "My" показывались пользователю
except
 on E: EMyException Exception do raise;
 on E: Exception do SaveToLog(E);
end;


 
Человек   (2011-10-23 14:03) [4]

Всем спасибо, помогло.



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

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

Наверх




Память: 0.47 MB
Время: 0.004 c
15-1370929338
[ВладОшин]
2013-06-11 09:42
2013.12.01
Конкретный вопрос про Антивирус Касперского 2012 vs 2013


15-1371025777
alexdn
2013-06-12 12:29
2013.12.01
Интерны


2-1361280669
Михаил
2013-02-19 17:31
2013.12.01
Необязательный var-параметр в процедуре


6-1270124169
syserg
2010-04-01 16:16
2013.12.01
IdHTTP и TMemoryStream и String


15-1370928230
MBo
2013-06-11 09:23
2013.12.01
Я всегда знал ;)