Главная страница
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.008 c
2-1360865736
Вова
2013-02-14 22:15
2013.12.01
исходник функции Mouse_Event хочу


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


15-1371206675
Empleado
2013-06-14 14:44
2013.12.01
nostalgie


15-1371109866
картман
2013-06-13 11:51
2013.12.01
адвокаты, нотариусы и подобные


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