Как определить порядок обработки исключений с помощью блоков catch в коде?

В C# порядок обработки исключений с помощью блоков catch определяется последовательностью их объявления.

Короткий ответ

Что ответить на собеседовании

В C# порядок обработки исключений с помощью блоков catch определяется последовательностью их объявления. При возникновении исключения система проходит блоки catch сверху вниз и выбирает первый подходящий по типу исключения.

Подробный разбор

Ответ с пояснениями

В C# порядок обработки исключений с помощью блоков catch определяется последовательностью их объявления. При возникновении исключения система проходит блоки catch сверху вниз и выбирает первый подходящий по типу исключения.

Важно:

  • Более специфичные исключения должны идти раньше более общих, иначе они никогда не будут достигнуты.
  • Например, сначала ловим ArgumentNullException, потом уже общий Exception.

Пример:

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

Если поменять порядок catch, например, сначала Exception, а потом ArgumentNullException, то второй блок станет недостижимым, и компилятор выдаст ошибку.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку