Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Екзамен з комп. арх..doc
Скачиваний:
4
Добавлен:
17.09.2019
Размер:
449.02 Кб
Скачать

13. Обробка виключних ситуацій в мові c#, основні класи та методи .Net щодо обробки виключень.

При обработке исключений используются ключевые слова try, catch и finally для попыток применения действий, которые могут не достичь успеха, для обработки ошибок и для последующего освобождения ресурсов. Исключения могут генерироваться средой CLR, платформой .NET Framework или внешними библиотеками, либо кодом приложения. Исключения создаются при помощи ключевого слова throw. Свойства:

- Исключения имеют типы, производные от System.Exception.

- В блоках try заключаются инструкции, которые могут выдать исключения.

- При возникновении исключения в блоке try поток управления немедленно переходит к блоку catch (обработчику исключений).

- Если обработчик для определенного исключения не существует, выполнение программы завершается с сообщением об ошибке.

- В блоке catch можно определить переменную исключения и использовать для получения дополнительной информации о типе произошедшего исключения.

- Объекты исключения содержат подробные сведения об ошибке, такие как состояние стека вызовов и текстовое описание ошибки.

- Код в блоке finally выполняется, даже при возникновении исключения. Блок finally используется для освобождения ресурсов, например для закрытия потоков или файлов, открытых в блоке try.

Блок catch может указывать тип перехватываемого исключения. Блоки catch проверяются сверху вниз в коде, однако для каждого вызванного исключения выполняется только один блок catch. Выполняется первый блок catch, указывающий точный тип или базовый класс созданного исключения. Очень важно, чтобы первыми были размещены блоки catch с самыми конкретными (т. е., самыми производными) типами исключений.

Некоторые исключения автоматически создаются средой CLR приложения платформы .NET Framework, когда происходит сбой основной операции:

Исключение

Описание

ArithmeticException

Основной класс исключений, происходящих при выполнении арифметических операций, таких как DivideByZeroException и OverflowException.

ArrayTypeMismatchException

Создается, когда массив не может хранить данный элемент, поскольку фактический тип элемента несовместим с фактическим типом массива.

DivideByZeroException

Создается при попытке разделить целое число на ноль.

IndexOutOfRangeException

Создается при попытке индексирования массива, если индекс меньше нуля или выходит за границы массива.

InvalidCastException

Создается, когда происходит сбой явного преобразования из основного типа в интерфейс либо в производный тип во время выполнения.

NullReferenceException

Создается при попытке ссылки на объект, значение которого равно null.

OutOfMemoryException

Создается при неудаче попытки выделения памяти с помощью оператора new. Это означает, что память, доступная для среды выполнения, уже исчерпана.

OverflowException

Создается при переполнении арифметической операции в контексте checked.

StackOverflowException

Создается, когда стек выполнения переполнен за счет слишком большого количества вызовов отложенных методов; обычно является признаком очень глубокой или бесконечной рекурсии.

TypeInitializationException

Создается, когда статический конструктор создает исключение, и не существует ни одного совместимого предложения catch для его захвата.