Hello, Аноним !
You wrote on Wed, 05 Oct 2005 10:44:31 GMT:
А> Каким образом можно избавиться от повторяющихся catch
А> блоков, желательно без использования макросов?
Используем "фильтр исключений" (вот так):
void TheFunction()
{
try {
//твоя функция
} catch(...) {
ExceptionFilter();
}
}
void ExceptionFilter()
{
try {
throw;
} catch(Exception1 const& e) {
//делаем одно
} catch(Exception2 const& e) {
//делаем второе
} catch(Exception3 const& e) {
//делаем третье
} catch(Exception4 const& e) {
//делаем четвертое
} catch(Exception5 const& e) {
//делаем пятое
} catch(...) {
//делаем еще что-то
}
}
ЗЫ. Естественно, фильтров и их вариаций может быть много...
Posted via RSDN NNTP Server 2.0 beta