Конспект по теме 'Исключения' из категории 'C#' Часть I - осно | .NET backend study
Конспект по теме "Исключения" из категории "C#"
Часть I - основы
Исключения - это ошибки, возникающие в рантайме.
Для перехвата исключений используется конструкция:
try { }
catch(Exception ex) { }
finally { }
Разберем каждый из этих блоков:
- try - здесь мы заключаем код, который потенциально может выбросить исключение;
- catch - здесь мы пишем код по обработке конкретного типа исключения. Может быть несколько catch -блоков, каждый из который обрабатывает определенный тип исключения;
- finally - это опциональный блок. Если он присутствует то код внутри него выполнится в любом случае - вне зависимости от того было выброшено исключение или нет.
Помимо перехвата исключений есть также возможность выброса собственных исключений. Это может пригодиться в следующих ситуациях:
- недопустимое значение аргументов;
- обработка некорректного поведения в логике;
- для валидации при вводе данных от пользователя.
Основные типы выбрасываемых исключений:
- ArgumentException - ошибка аргумента (например, значение < 0);
- ArgumentNullException - аргумент является null;
- IndexOutOfRangeException - ошибка индекса в коллекции (например, попытка обратиться к 4-му элементу массива, который состоит из 3 значений);
- InvalidCastException - ошибка преобразования типов.
Фильтры исключений
Фильтры исключений позволяют обрабатывать исключения в зависимости от определённых условий. Пример:
try { }
catch(ExternalApiException ex) when (ex.ResponseCode == 404)
{ }
catch(ExternalApiException ex)
{ }
Обработчиком ошибки будет именно тот блок catch-блок, для которого истинно when-выражение.
Вернуться в бэклог категории C#