Sobes.tech
Junior — Middle

Akú úlohu má operátor throw v bloku catch pri spracovaní výnimiek?

sobes.tech AI

Odpoveď od AI

Operátor throw v bloku catch sa používa na opätovné vyhodenie aktuálnej výnimky alebo na vyhodenie novej.

Ak napíšete jednoducho throw; bez parametra, výnimka sa opätovne vyhodí s pôvodným zásobníkom volaní. Je to užitočné, keď chcete výnimku čiastočne spracovať (napríklad ju zaznamenať) a potom ju odovzdať ďalej.

Ak napíšete throw new Exception(...), vyhodí sa nová výnimka a zásobník volaní začne od tohto miesta.

Príklad opätovného vyhodenia:

try
{
    // kód
}
catch(Exception ex)
{
    Log(ex.Message);
    throw; // opätovne vyhodíme tú istú výnimku
}