Книга: 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
находится в разделе данного приложения о ключевых словах.
- 1.2.7. Исключения
- Исключения и обработчики исключений
- Рассмотрите возможность исключения необязательной информации перед отправкой данных на устройство
- Ода ошибкам и исключениям
- Исключения, возникающие при выполнении операций над числами с плавающей точкой
- Ошибки и исключения
- Исключения, генерируемые приложением
- ГЛАВА 7 Взаимные исключения и условные переменные
- 10. Лекция: Операторы и структура кода. Исключения
- Исключения из правил оптимизации
- Восстановление при исключениях, сгенерированных операционной системой
- Исключения разработчика