Язык программирования C++. Вводный курс


Иерархия классов исключений в стандартной библиотеке C++ - часть 4


Упражнение 19.5

Какие исключения могут возбуждать следующие функции:

#include <stdexcept>

 

(a) void operate() throw( logic_error );

(b) int mathErr( int ) throw( underflow_error, overflow_error );

(c) char manip( string ) throw( );

Упражнение 19.6

Объясните, как механизм обработки исключений в C++ поддерживает технику программирования “захват ресурса – это инициализация; освобождение ресурса – это уничтожение”.

Упражнение 19.7

Исправьте ошибку в списке catch-обработчиков для данного try-блока:

#include <stdexcept>

 

int main() {

   try {

      // использование функций из стандартной библиотеки

   }

   catch( exception ) {

   }

   catch( runtime_error &re ) {

   }

   catch( overflow_error eobj ) {

   }

}

Упражнение 19.8

Дана программа на C++:

int main() {

   // использование стандартной библиотеки

}

Модифицируйте main()

так, чтобы она перехватывала все исключения, возбуждаемые функциями стандартной библиотеки. Обработчики должны печатать сообщение об ошибке, ассоциированное с исключением, а затем вызывать функцию abort() (она определена в заголовочном файле <cstdlib>) для завершения main().




Начало  Назад  Вперед