Sobes.tech
Junior

Co je to operátor throw v C#?

sobes.tech AI

Odpověď od AI

Operátor throw se používá k přímému vyvolání výjimky. Umožňuje přerušit normální běh programu a předat řízení bloku pro zpracování výjimek.

// Příklad použití operátoru throw
try
{
    int[] numbers = { 1, 2, 3 };
    int index = 5;

    // Ruční vyvolání výjimky IndexOutOfRangeException
    if (index >= numbers.Length)
    {
        throw new IndexOutOfRangeException("Index je mimo rozsah pole.");
    }

    Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
    // Zpracování výjimky
    Console.WriteLine($"Chyba: {ex.Message}");
}

Operátor throw může být použit ve dvou formách:

  1. throw expression;: Vyvolá novou výjimku, kde expression je instance třídy, která dědí od System.Exception.

    throw new ArgumentException("Neplatný argument.");
    
  2. throw;: Znovu vyvolá aktuální výjimku v bloku catch. To zachovává všechny informace o zásobníku volání původní výjimky.

    try
    {
        // Kód, který může vyvolat výjimku
    }
    catch (FileNotFoundException ex)
    {
        // Další zpracování nebo logování
        Console.WriteLine($"Soubor nebyl nalezen: {ex.FileName}");
    
        // Znovu vyvolat výjimku pro další zpracování výše na zásobníku
        throw;
    }
    

Použití throw je důležité pro:

  • Signalizaci chyb nebo neočekávaných situací v aplikaci.
  • Vytváření vlastních výjimek pro specifické chyby.
  • Přenos informací o chybě volajícímu kódu pro správné zpracování.