Junior — Middle
Milline on throw operaatori roll catch-blokis erandite töötlemisel?
sobes.tech AI
Vastus AI-lt
catch ploki sees throw operaatorit kasutatakse olemasoleva erandi uuesti viskamiseks või uue viskamiseks.
Kui kirjutate lihtsalt throw; ilma parameetriteta, siis erand visatakse uuesti säilitades algse kutsumise virna. See on kasulik, kui soovite erandit osaliselt töödelda (näiteks logida) ja seejärel edasi anda.
Kui kirjutate throw new Exception(...), visatakse uus erand ning kutsumise virn algab sellest kohast.
Näide uuesti viskamisest:
try
{
// kood
}
catch(Exception ex)
{
Log(ex.Message);
throw; // viskame sama erandi uuesti
}