Sobes.tech
Junior

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

sobes.tech AI

Отговор от 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 е важно за:

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