Порядок catch при ловле эксепшинов
От: Vladik Россия  
Дата: 04.01.03 15:12
Оценка:
Привет!

Играет ли роль порядок перечисления catch? Вот такой пример:

class BaseException
{
};

class DerivedException : public Exception
{
};
...
    try
    {
        throw DerivedException();
    }
    catch(DerivedException &)
    {
    }
    catch(BaseException &)
    {
    }


Всегда ли отловится DerivedException в соответствующем catch или только если этот catch стоит первым?
Как все запущенно...
Re: Порядок catch при ловле эксепшинов
От: ZORK Россия www.zorkaltsev.com
Дата: 04.01.03 15:15
Оценка: 8 (1)
Здравствуйте, Vladik, Вы писали:

Лишние цитаты удалены. ДХ

V>Играет ли роль порядок перечисления catch? Вот такой пример:


Конечно играет. Кстати, это можно узнать как из спецификации языка так и просто эксперементальным путем

-zork
Думать надо ...головой :)
Re: Порядок catch при ловле эксепшинов
От: MaximE Великобритания  
Дата: 04.01.03 15:15
Оценка: 8 (1)
Здравствуйте, Vladik, Вы писали:

V>Привет!


V>Всегда ли отловится DerivedException в соответствующем catch или только если этот catch стоит первым?


Только если первым.
Re[2]: Порядок catch при ловле эксепшинов
От: Vladik Россия  
Дата: 04.01.03 15:40
Оценка:
Здравствуйте, ZORK, Вы писали:

ZOR>Конечно играет. Кстати, это можно узнать как из спецификации языка


Это долго

ZOR>так и просто эксперементальным путем


Можно нарваться на особенности компилятора...

P.S. Спасибо
Как все запущенно...
Re[3]: Порядок catch при ловле эксепшинов
От: Павел Кузнецов  
Дата: 06.01.03 15:34
Оценка: 37 (3)
Здравствуйте, Vladik, Вы писали:

ZOR>>это можно узнать как из спецификации языка


V>Это долго :)


Зато наверняка :-)

15.3 Handling an exception
5
The handlers for a try block are tried in order of appearance. That makes it possible to write handlers that can never be executed, for example by placing a handler for a derived class after a handler for a corresponding base class.

Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.