Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.003 c
15-1371056583
ПЛОВ
2013-06-12 21:03
2013.12.01
Как придумываются прогнозы погоды?


2-1361364235
Dmitry_
2013-02-20 16:43
2013.12.01
Получить данные из Pointer


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


1-1318903108
Acid_Burn
2011-10-18 05:58
2013.12.01
Связать memo с текстом между тегами(html)


15-1370896203
Юрий
2013-06-11 00:30
2013.12.01
С днем рождения ! 11 июня 2013 вторник




   Наверх