Шаг 207.
Microsoft Visual C++ 2010. Язык С/С++.
Управление исключительными ситуациями. Основные классы типов исключений

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

    При обработке исключений можно задавать классы типов исключений. Например, обрабатывать все исключительные ситуации из класса исключений, возникающих при выполнении арифметических операций и т. п. Все типы таких классов расположены в пространстве System. В таблице 1 представлены некоторые такие классы.

Таблица 1. Классы типов исключений
Класс Исключительная ситуация возникает:
AccessVioiationException Когда идет попытка чтения/записи в защищенной памяти
AppDomainUnloadedException Когда идет попытка доступа к незагружаемой области приложения
ApplicationException Когда в приложении возникает не фатальная ошибка
ArgumentExcерtion Когда один из аргументов метода недействителен
ArgumentNullException Когда методу передается нулевая ссылка, а метод ее не распознает как действительный аргумент
ArgumentOutOfRangeException Когда значение аргумента выходит за границы, определенные методом
ArithmeticException При ошибках в арифметических операциях и при преобразовании данных
ArrayTypeMismatchException При попытке поместить элемент в массив, тип которого не совпадает с типом элемента
DivideByZeroException Когда идет попытка деления числа на ноль
EntryPointNotFoundException При попытке загрузить класс в случае отсутствия точки входа (например, в приложении отсутствует метод main())
Exception В момент выполнения приложения
FieldAccessException При попытке доступа внутри класса к членам с атрибутами private или protected
FormatException Когда обнаруживается нарушение формата аргумента, объявленного в методе
IndexOutOfRangeException При выходе индекса массива за границы массива
InsufficientMemoryException Из-за нехватки памяти
InvalidCastException При неправильном преобразовании данных
InivalidOperationException Когда для текущего состояния объекта вызов метода неверен
MemberAccessException При неудачной попытке доступа к члену класса
MethodAccessException При неудачной попытке доступа к private или protected-методу внутри класса
MissingFieldException При попытке динамического доступа к несуществующему полю класса
MissingMemberException При попытке динамического доступа к несуществующему члену класса
MissingMethodException При попытке динамического доступа к несуществующему методу класса
NotFiniteNumberException При обработке несуществующего или бесконечного числа с плавающей точкой
NotSupportedException При вызове метода, который не поддерживается, или при работе с потоком данных, когда требуемая функциональность не поддерживается
NullReferenceException При попытке разыменовать нулевую ссылку
OutOfMemoryException При нехватке памяти для продолжения работы программы
Overf1owException При превышении значений арифметических операций или операций преобразования в контролируемом контексте
PlatformNotSupportedException При попытке запустить приложение на неподдерживаемой платформе
RankException При попытке передачи массива с неверной размерностью в метод
StackOverflowException При переполнении стека (слишком много вызовов методов)
TimeoutException При истечении времени, отведенного для процесса или операции
TypeLoadException При сбое в момент загрузки некоторого типа
TypeUnloadedException При попытке доступа к незагруженному классу
UnauthorizedAcсessException При попытке неавторизованного доступа (операционная система отвергает доступ из-за ошибки ввода/вывода или из-за нарушения специального типа безопасности)
UriFormatExcерtion При обнаружении неверного Uniform Resource Identifier (URI)

    На следующем шаге мы рассмотрим пример их использования.




Предыдущий шаг Содержание Следующий шаг