Sobes.tech
Junior

Kas yra throw operatorius C#?

sobes.tech AI

Atsakymas iš AI

throw operatorius naudojamas aiškiai iškeliant išimtį. Jis leidžia nutraukti įprastą programos vykdymą ir perduoti valdymą išimtį apdorojančiam blokui.

// `throw` operatoriaus pavyzdys
try
{
    int[] numbers = { 1, 2, 3 };
    int index = 5;

    // Rankinis `IndexOutOfRangeException` iškvietimas
    if (index >= numbers.Length)
    {
        throw new IndexOutOfRangeException("Indeksas yra už masyvo ribų.");
    }

    Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
    // Išimties apdorojimas
    Console.WriteLine($"Klaida: {ex.Message}");
}

throw operatorius gali būti naudojamas dviejose formose:

  1. throw expression;: Išmeta naują išimtį, kur expression yra System.Exception paveldėjusios klasės egzempliorius.

    throw new ArgumentException("Neteisingas argumentas.");
    
  2. throw;: Pakartotinai išmeta dabartinę išimtį catch bloke. Tai išsaugo visą pradinės išimties iškvietimo steko informaciją.

    try
    {
        // Kodas, kuris gali iškelti išimtį
    }
    catch (FileNotFoundException ex)
    {
        // Papildomas apdorojimas arba žurnalo įrašymas
        Console.WriteLine($"Failas nerastas: {ex.FileName}");
    
        // Išimties pakartotinis iškėlimas aukštesniame steke
        throw;
    }
    

throw naudojimas yra svarbus:

  • Klaidų arba nenumatytų situacijų žymėjimui programoje.
  • Savo išimčių kūrimui specifinėms klaidoms.
  • Informacijos apie klaidą perdavimui kviečiančiam kodui tinkamam apdorojimui.