На этом шаге мы приведем классификацию стандартных исключений.
Стандартная библиотека C++ неоднородна. Она содержит программный код из множества разных источников, отличающихся
по стилю проектирования и реализации. Типичным примером таких различий является обработка ошибок и исключений. Одни части
библиотеки - например, строковые классы - поддерживают подробную обработку ошибок. Они проверяют все возможные проблемы,
которые могут возникнуть в работе программы, и генерируют исключение в случае ошибки. Другие компоненты - например,
стандартная библиотека шаблонов STL и массивы valarray - оптимизируются по скорости, поэтому они редко
проверяют логические ошибки и выдают исключения только в случае ошибок времени выполнения.
Стандартные классы исключений
Все исключения, генерируемые языком или библиотекой, происходят от общего предка - базового класса exception. Этот
класс является корнем иерархического дерева исключений, изображенного на рис. 1.
Рис.1. Иерархия стандартных исключений
Стандартные классы исключений делятся на три категории:
- исключения языковой поддержки;
- исключения стандартной библиотеки C++;
- исключения внешних ошибок.
На следующем шаге мы рассмотрим исключения языковой поддержки.