Книга: C# для профессионалов. Том II

Исключения

Исключения

Исключения в C# на первый взгляд являются такими же, как в Java. Инструкции C# try-catch и try-catch-finally работают подобно своим аналогам в Java (смотрите раздел о ключевых словах). Однако в C# нельзя использовать инструкцию throws, поэтому невозможно указать вызывающей стороне, что некоторый код в методе может порождать исключение. Также имеется try-finally, который не подавляет порожденные исключения, но предлагает блок finally, выполняющий после порождения исключения, чтобы произвести очистку.

Порождение исключений делается с помощью инструкции throw. Например, чтобы породить SystemException, используется код throw new SystemException (<arg-list>);. Это полностью совпадает c тем, как исключения порождается в Java. Требуется только инструкция throws и подходящий класс исключения. Далее представлен список некоторых стандартных классов исключений, предоставляемых средой выполнения .NET. Так же как в Java, их функциональность отражается в данных им именах:

Exception — базовый класс для всех объектов исключений.

SystemException — базовый класс для всех ошибок, создаваемых во время выполнения.

IndexOutOfRangeException возникает, когда индекс массива во время выполнения оказывается вне границ заданного диапазона.

NullReferenceException порождается, когда во время выполнения ссылаются на null.

InvalidOperationException порождается некоторыми методами, когда вызов метода бывает не действителен для текущего состояния объекта.

ArgumentException — базовый класс всех исключений для аргументов.

ArgumentNullException порождается если аргумент задан как null, когда это недопустимо.

InteropException является базовым классом для исключений, которые возникают или направлены на среды вне CLR.

Одним исключением, которое возникает независимо от того, будет ли оно специально порождаться или нет, является System.OverflowException, связанное с вычисленными результатами, превосходящими диапазон значений типа данных переменной результата. Инструкции checked и unchecked могут инициировать или подавлять связанные с этим исключения. Дополнительная информация о checked и unchecked находится в разделе данного приложения о ключевых словах.

Оглавление книги


Генерация: 0.247. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз