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
}