Sobes.tech
Junior — Middle

Care este rolul operatorului throw în interiorul blocului catch în tratarea excepțiilor?

sobes.tech AI

Răspuns de la AI

Operatorul throw din interiorul blocului catch este folosit pentru a relansa excepția curentă sau pentru a arunca una nouă.

Dacă scrii pur și simplu throw; fără parametri, excepția este relansată păstrând stiva de apeluri originală. Acest lucru este util atunci când vrei să gestionezi parțial excepția (de exemplu, să o înregistrezi) și apoi să o transmiți mai departe.

Dacă scrii throw new Exception(...), se aruncă o excepție nouă, iar stiva de apeluri va începe de la acest punct.

Exemplu de relansare:

try
{
    // cod
}
catch(Exception ex)
{
    Log(ex.Message);
    throw; // relansează aceeași excepție
}