Junior — Middle
Каква е ролята на оператора throw вътре в блока catch при обработката на изключения?
sobes.tech AI
Отговор от AI
Операторът throw вътре в блока catch се използва за повторно изхвърляне на текущото изключение или за изхвърляне на ново.
Ако напишете просто throw; без параметри, изключението се изхвърля отново с запазване на оригиналната стекова следа. Това е полезно, когато искате да обработите частично изключението (например, да го регистрирате) и след това да го предадете нататък.
Ако напишете throw new Exception(...), се изхвърля ново изключение, и стековата следа започва от това място.
Пример за повторно изхвърляне:
try
{
// код
}
catch(Exception ex)
{
Log(ex.Message);
throw; // повторно изхвърляме същото изключение
}