Sobes.tech
Junior

Ce este operatorul throw în C#?

sobes.tech AI

Răspuns de la AI

Operatorul throw este utilizat pentru a genera explicit o excepție. Acesta permite întreruperea execuției normale a programului și transferul controlului către blocul de tratare a excepțiilor.

// Exemplu de utilizare a operatorului throw
try
{
    int[] numbers = { 1, 2, 3 };
    int index = 5;

    // Generarea manuală a unei excepții IndexOutOfRangeException
    if (index >= numbers.Length)
    {
        throw new IndexOutOfRangeException("Indexul se află în afara limitelor array-ului.");
    }

    Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
    // Tratarea excepției
    Console.WriteLine($"Eroare: {ex.Message}");
}

Operatorul throw poate fi utilizat în două forme:

  1. throw expression;: Generază o nouă excepție, unde expression este o instanță a unei clase moștenite de System.Exception.

    throw new ArgumentException("Argument invalid.");
    
  2. throw;: Re-apelează excepția curentă în blocul catch. Acest lucru păstrează toate informațiile despre stiva de apeluri a excepției originale.

    try
    {
        // Cod care poate genera o excepție
    }
    catch (FileNotFoundException ex)
    {
        // Tratare suplimentară sau logare
        Console.WriteLine($"Fișierul nu a fost găsit: {ex.FileName}");
    
        // Re-generarea excepției pentru tratarea ulterioară mai sus în stivă
        throw;
    }
    

Utilizarea throw este importantă pentru:

  • Indicare erori sau situații neașteptate în aplicație.
  • Crearea de excepții personalizate pentru erori specifice.
  • Transmiterea informațiilor despre eroare către codul apelant pentru o tratare corectă.