На этом шаге мы перечислим основные классы типов исключений.
При обработке исключений можно задавать классы типов исключений. Например, обрабатывать все исключительные ситуации из класса исключений, возникающих при выполнении арифметических операций и т. п. Все типы таких классов расположены в пространстве System. В таблице 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) |
На следующем шаге мы рассмотрим пример их использования.