Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
15-1371206675
Empleado
2013-06-14 14:44
2013.12.01
nostalgie


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


15-1370617769
Hadroran
2013-06-07 19:09
2013.12.01
Построение запроса


1-1319355370
Человек
2011-10-23 11:36
2013.12.01
Подавление всех Exception кроме определенного


3-1294580093
adigozelov
2011-01-09 16:34
2013.12.01
Unicode v Ehlib





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский