Sobes.tech
Junior

Šta je operator throw u C#?

sobes.tech АИ

Одговор од АИ

Operator throw se koristi za eksplicitno izazivanje izuzetka. Omogućava da se normalno izvršavanje programa prekinе i kontrola preda bloku za rukovanje izuzecima.

// Primer korišćenja operatora throw
try
{
    int[] numbers = { 1, 2, 3 };
    int index = 5;

    // Ručno izazivanje izuzetka IndexOutOfRangeException
    if (index >= numbers.Length)
    {
        throw new IndexOutOfRangeException("Indeks je van opsega niza.");
    }

    Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
    // Obrada izuzetka
    Console.WriteLine($"Greška: {ex.Message}");
}

Operator throw može se koristiti u dve forme:

  1. throw expression;: Izaziva novi izuzetak, gde je expression instanca klase koja nasleđuje od System.Exception.

    throw new ArgumentException("Nevažeći argument.");
    
  2. throw;: Ponovo pokreće trenutni izuzetak u catch bloku. Ovo čuva sve informacije o steku poziva originalnog izuzetka.

    try
    {
        // Kod koji može izazvati izuzetak
    }
    catch (FileNotFoundException ex)
    {
        // Dodatna obrada ili logovanje
        Console.WriteLine($"Fajl nije pronađen: {ex.FileName}");
    
        // Ponovo pokretanje izuzetka za dalju obradu na višem nivou
        throw;
    }
    

Korišćenje throw je važno za:

  • Ukazivanje na greške ili neočekivane situacije u aplikaciji.
  • Kreiranje sopstvenih izuzetaka za specifične greške.
  • Prenos informacija o grešci pozivajućem kodu za ispravno rukovanje.