в ExcTest.genException() в<имя_файла>:строка 15 в UseExcept.Main()в<имя_файла>:строка 2 9 Свойство StackTrace:    в    ExcTest.genException()в<имя_файла>:строка 15

в UseExcept.Main()в<имя_файла>:строка 2 9 Свойство Message:    Индекс    находился    вне    границ    массива.

Свойство TargetSite:    Void genException ()

После блока перехвата исключения.

public Exception ()

public Exception(stringсообщение)

public Exception(stringсообщение,Exceptionвнутреннее_исключение)protected Exception(System.Runtime.Serialization.Serializationlnfoинформация,System.Runtime.Serialization.StreamingContextконтекст)

Первый конструктор используется по умолчанию. Во втором конструкторе указывается строкасообщение,связанная со свойствомMessage,которое имеет отношение к генерируемому исключению. В третьем конструкторе указывается так называемоевнутреннее исключение.Этот конструктор используется в том случае, когда одно исключение порождает другое, причемвнутреннее_исключениеобозначает первое исключение, которое будет пустым, если внутреннее исключение отсутствует. (Если внутреннее исключение присутствует, то оно может быть получено из свойстваInnerException,определяемого в классеException.)И последний конструктор обрабатывает исключения, происходящие дистанционно, и поэтому требует десериализации.

Следует также заметить, что в четвертом конструкторе классаExceptionтипыSerializationlnfoиStreamingContextотносятся к пространству именSystem. Runtime.Serialization.

Наиболее часто используемые исключения

В пространстве именSystemопределено несколько стандартных, встроенных исключений. Все эти исключения являются производными от классаSystemException,поскольку они генерируются системой CLR при появлении ошибки во время выполнения. В табл. 13.1 перечислены некоторые наиболее часто используемые стандартные исключения.

Таблица 13.1. Наиболее часто используемые исключения, определенные в пространстве имен System

Исключение

Значение

ArrayTypeMismatchException

Тип сохраняемого значения несовместим с типом массива

DivideByZeroException

Попытка деления на нуль

IndexOutOfRangeException

Индекс оказался за границами массива

InvalidCastException

Неверно выполнено динамическое приведение типов

OutOfMemoryException

Недостаточно свободной памяти для дальнейшего выполнения программы. Это исключение может быть, например, сгенерировано, если для создания объекта с помощью оператора new не хватает памяти

OverflowException

Произошло арифметическое переполнение

NullReferenceException

Попытка использовать пустую ссылку, т.е. ссылку, которая не указывает ни на один из объектов

Перейти на страницу:

Похожие книги