LINUX.ORG.RU

Исключения и С++


0

0
Есть такая штука:

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
а ты запусти да посмотри
jtootf ★★★★★
()
поймается FileCloseException.

An exception is considered caught when initialization is complete for the formal parameter of the corresponding catch clause, or when terminate() or unexpected() is entered due to a throw.

dilmah ★★★★★
()
Ответ на: комментарий от anonymous
Не увижу! факт медицинский!
anonymous
()
Нет никаких "исключений" в С++(как и ООП, да, например) Если тебе не повезло и тебя не берут никуда кроме как жуниор плюсоебом, или просто ты в детстве ударился головой, и теперь пишешь на С++, забудь исключения, robust programming на С++ это геморрой и пустая трата времени.
anonymous
()
Ответ на: комментарий от anonymous
to anonymous:

Сразу видно проффесионального разработчика на Visual Basic for Applications)))

Walrus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.