Sobes.tech
Junior
198
questionbank

Что такое оператор throw в C#?

Answer from AI

sobes.tech AI

Оператор throw используется для явного инициирования исключения. Он позволяет прервать нормальное выполнение программы и передать управление блоку обработки исключений.

// Пример использования оператора throw
try
{
    int[] numbers = { 1, 2, 3 };
    int index = 5;

    // Инициирование исключения IndexOutOfRangeException вручную
    if (index >= numbers.Length)
    {
        throw new IndexOutOfRangeException("Индекс находится за пределами массива.");
    }

    Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
    // Обработка исключения
    Console.WriteLine($"Ошибка: {ex.Message}");
}

Оператор throw может использоваться в двух формах:

  1. throw expression;: Инициирует новое исключение, где expression — это экземпляр класса, унаследованного от System.Exception.

    throw new ArgumentException("Недопустимый аргумент.");
    
  2. throw;: Повторно генерирует текущее исключение в блоке catch. Это сохраняет полную информацию о стеке вызовов исходного исключения.

    try
    {
        // Код, который может вызвать исключение
    }
    catch (FileNotFoundException ex)
    {
        // Дополнительная обработка или логирование
        Console.WriteLine($"Файл не найден: {ex.FileName}");
    
        // Повторная генерация исключения для дальнейшей обработки выше по стеку
        throw;
    }
    

Использование throw важно для:

  • Индикации ошибок или неожиданных ситуаций в приложении.
  • Создания собственных исключений для специфических ошибок.
  • Передачи информации об ошибке вызывающему коду для корректной обработки.