С++ для начинающих




Использование исключений - часть 4


{

  ifstream infile (file_name)

  int elem_cnt;

  infile >> elem_cnt;

  int *pi = allocate_array(elem_cnt);

  int elem;

  int index=0;

  while (cin >> elem)

    pi[index++] = elem;

  sort_array(pi,elem_cnt);

  register_data(pi);

  return pi;

}

Упражнение 2.19

В предыдущем примере вызываемые функции allocate_array(), sort_array() и register_data() могут возбуждать исключения типов noMem, int и string соответственно. Перепишите функцию alloc_and_init(), вставив соответствующие блоки try и catch для обработки этих исключений. Пусть обработчики просто выводят в cerr сообщение об ошибке.

Упражнение 2.20

Усовершенствуйте функцию alloc_and_init() так, чтобы она сама возбуждала исключение в случае возникновения всех возможных ошибок (это могут быть исключения, относящиеся к вызываемым функциям allocate_array(), sort_array() и register_data() и какими-то еще операторами внутри функции alloc_and_init()). Пусть это исключение имеет тип string и строка, передаваемая обработчику, содержит описание ошибки.




Содержание  Назад  Вперед