Форум: "Основная";
Текущий архив: 2013.12.01;
Скачать: [xml.tar.bz2];
ВнизПодавление всех 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c