Junior — Middle
Jaka jest rola operatora throw w bloku catch w obsłudze wyjątków?
sobes.tech AI
Odpowiedź od AI
Operator throw w bloku catch służy do ponownego wyrzucenia bieżącego wyjątku lub wyrzucenia nowego.
Jeśli napiszesz po prostu throw; bez parametrów, wyjątek zostanie ponownie wyrzucony z zachowaniem oryginalnego stosu wywołań. Jest to przydatne, gdy chcesz częściowo obsłużyć wyjątek (np. zalogować go), a następnie przekazać dalej.
Jeśli napiszesz throw new Exception(...), zostanie wyrzucony nowy wyjątek, a stos wywołań zacznie się od tego miejsca.
Przykład ponownego wyrzucenia:
try
{
// kod
}
catch(Exception ex)
{
Log(ex.Message);
throw; // ponownie wyrzucamy ten sam wyjątek
}