Получи случайную криптовалюту за регистрацию!

Конспект по теме 'Исключения' из категории '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#