Sobes.tech
Junior — Middle

Como determinar a ordem de tratamento de exceções usando blocos catch no código?

sobes.tech IA

Resposta da IA

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

Важно:

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

Пример:

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

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