Обработка исключительных ситуаций. Подготовка к ОКР

Содержание

Слайд 2

Исключения В С# есть механизм, который позволяет обрабатывать подобные ошибки и

Исключения

В С# есть механизм, который позволяет обрабатывать подобные ошибки и таким

образом избегать аварийного завершения программы. Он так и называется: механизм обработки исключительных ситуаций (исключений).
Слайд 3

Родитель ошибок Каждому типу ошибки соответствует свое исключение. В с# исключения

Родитель ошибок

Каждому типу ошибки соответствует свое исключение. В с# исключения являются

классами, которые имеют общего предка — класс Exception, определенный в пространстве имен System.
Слайд 4

Конструкторы Свойства

Конструкторы

Свойства

Слайд 5

Важные системные ошибки ArrayTypeMismatchException Тип сохраненного значения несовместим с типом массива

Важные системные ошибки

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

Предпринята попытка деления на ноль
IndexOutOfRangeException Индекс массива выходит за пределы диапазона
Слайд 6

Важные системные ошибки InvalidCastException Некорректное преобразование в процессе выполнения OutOfMemoryException Вызов

Важные системные ошибки

InvalidCastException Некорректное преобразование в процессе выполнения
OutOfMemoryException Вызов new

был неудачным из-за недостатка памяти
Overflow/Exception Переполнение при выполнении арифметической операции
StackOverflowException Переполнение стека
Слайд 7

Перехват(обработка исключений) Можно задать способ обработки исключений Стандартная обработка: вывод сообщения И завершение программы

Перехват(обработка исключений)

Можно задать способ обработки исключений

Стандартная обработка: вывод сообщения
И завершение программы

Слайд 8

try //обязательный блок { Код в котором может быть исключение} catch

try //обязательный блок
{ Код в котором может быть исключение}
catch (SomeSpecificException ex)
{

Действия по обработке}
finally
{
Обязательные действия
}

Обработка исключений

Слайд 9

Условия для перехвата Имеется хорошее понимание причин создания исключения, существует возможность

Условия для перехвата

Имеется хорошее понимание причин создания исключения, существует возможность реализовать

конкретное восстановление.
Например предложить пользователю ввести новое имя файла при перехвате объекта FileNotFoundException.
Слайд 10

Условия для перехвата Возможность создания и вызова нового, более конкретного исключения.

Условия для перехвата

Возможность создания и вызова нового, более конкретного исключения.
int GetInt(int[]

array, int index)
{ try
{ return array[index]; }
catch(System.IndexOutOfRangeException e)
{
throw new System.ArgumentOutOfRangeException(
"Parameter index is out of range.");
}}
Слайд 11

Условия для перехвата Требуется частично обработать исключение перед передачей его на

Условия для перехвата

Требуется частично обработать исключение перед передачей его на дополнительную

обработку.
try
{ // Получить доступ к ресурсу
}
catch (System.UnauthorizedAccessException e)
{ // Попытка не удалась.
LogError(e);
throw;
}
Слайд 12

Блок catch Если у нас возникает исключение определенного типа, то оно

Блок catch

Если у нас возникает исключение определенного типа, то оно переходит

к соответствующему блоку catch.
При этом более частные исключения следует помещать в начале, и только потом более общие классы исключений.
Слайд 13

Блок catch

Блок catch