Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Как использовать try-catch-finally на Visual C++?


Автор: neokoder 12.3.2011, 09:56
Компилятор пишет об ошибке всякий раз когда пытаюсь использовать все три ключевые слова. По отдельности конструкции try-catch и __try-__finally работают. А какой синтаксис должен быть чтобы использовать все три ключевых слова try-catch-finally?

Автор: maxim1000 12.3.2011, 10:09
в C++ нет finally
есть только try и catch
__try/__finally - расширение от VS для других целей (не C++ исключений)

причина отсутствия finally в C++ - наличие деструкторов
например, если нужно закрыть файл по окончании работы функции, можно использовать std::fstream - он закрывает файл в деструкторе

более подробно - http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization

Автор: neokoder 12.3.2011, 10:52
Ещё такой вопрос, если в блоке __try { return; }, то блок __finally выполнится или нет.

Вот на С++ Builder знаю точно - выполнится.

Автор: neokoder 13.3.2011, 19:08
Выполнится. Проверено.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)