Sobes.tech
Junior — Middle

Koja je uloga operatora throw unutar catch bloka u obradi izuzetaka?

sobes.tech АИ

Одговор од АИ

Operator throw unutar catch bloka se koristi za ponovno podizanje trenutnog izuzetka ili za podizanje novog.

Ako napišete jednostavno throw; bez parametara, izuzetak se ponovo podiže sačuvanim originalnim stekom poziva. Ovo je korisno kada želite delimično da obradite izuzetak (npr. da ga zabeležite) i zatim ga prosledite dalje.

Ako napišete throw new Exception(...), podiže se novi izuzetak, i stek poziva će početi od tog mesta.

Primer ponovnog podizanja:

try
{
    // kod
}
catch(Exception ex)
{
    Log(ex.Message);
    throw; // ponovo podižemo isti izuzetak
}