Re: подход к try-catch
От: 0xDEADBEEF Ниоткуда  
Дата: 05.10.05 14:39
Оценка: 496 (54)
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
__________
16.There is no cause so right that one cannot find a fool following it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.