Обработка ошибок и исключений. Генерирование стандартных исключений

   
На этом шаге мы рассмотрим способы генерации стандартных исключений.

   
Стандартные исключения также могут генерироваться в пользовательских библиотеках или программах. Объекты всех
классов стандартных исключений, предоставляющих такую возможность, создаются с одним параметром: объектом
string с описанием, которое должно возвращаться функцией what(). Например, определение класса
logic_error выглядит так:

namespace std {
  class logic_error : public exception { 
    public: 
      explicit logic error (const strings whatString);
  };
}

   
Набор стандартных исключений, которые могут генерироваться в пользовательских библиотеках или программах,
включает класс logic_error с производными классами, класс runtime_error с производными классами,
а также класс ios_base::failure. Следовательно, вы не сможете генерировать исключения базового класса
exception, а также любых классов исключений, предоставляющих языковую поддержку.

   
Чтобы генерировать стандартное исключение, просто создайте строку с описанием и передайте ее объекту исключения
в команде throw:

  std::string s;
  .    .    .    .
  throw std::out_of_range(s);

   
Автоматическое преобразование char* в string позволяет использовать строковый литерал:

  throw std::out_of_range("out_of_range (somewhere.somehow)");

   
На следующем шаге мы рассмотрим классы исключений, производные от exception.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий