Есть такая штука:
class FileException {
...
public:
FileException(const char*);
virtual void report() {cout<<"0\n";};
};
class FileCloseException : public FileException {
....
public:
FileCloseException(const char* f) : FileException(f) {};
void report() {cout<<"1\n";};
};
class FileWriteException : public FileException {
....
public:
FileWriteException(const char* fn, FILE* f) : FileException(fn)
{if (fclose(f)) throw FileCloseException(fn);};
void report() {cout<< "2\n";};
};
Собственно интересно что будет если я генерирую FileWriteException а оно в своем конструкторе сгенерирует FileCloseException? Как сработает такой блок:
try
{ bad_func();
} catch (FileWriteException& e) {
e->report();
} catch (FileCloseException& e) {
e->report();
}
Что я увижу на экране?
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Валится на throw (2005)
- Форум Множественное наследование и try/catch inderect base, C++ (2008)
- Форум Как правильно наследовать от std::exception ? (2007)
- Форум вопрос по исключениям в с++ (2005)
- Форум Исключения в С++ (2010)
- Форум Исключения в конструкторе (2003)
- Форум Выдача конкретной причины исключения (2012)
- Форум [C++, CMake, MinGW, кросскомпиляция] try ... catch не ловит исключения. (2011)
- Форум C++ exception object constructor. «Не вызывается» (2008)
- Форум C++/exceptions - деление на ноль не ловиццо, почему? (2006)