Почему не отлавливается исключение?
class A
{
public:
void SHOW()
{
std::cout << "A" << std::endl;
throw;
}
};
int main()
{
try
{
A* ptr = new A;
ptr->SHOW();
}
catch (...)
{
}
}
Какое исключение?
Оператор throw
без аргумента означает "сгенерировать перехваченное исключение заново" и применяется только в блоке catch
.
Если бы вы написали что-то типа throw 0
или throw "Error"
- дело другое. А так...
Вот ситуация, где ваш throw
действительно сработает:
class A
{
public:
void SHOW()
{
std::cout << "A" << std::endl;
throw;
}
};
int main()
{
try {
A* ptr = new A;
try
{
throw 5;
}
catch (...)
{
ptr->SHOW();
}
} catch(int x)
{
cout << x << endl;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый деньНеобходимо написать программу, которая будет запускаться в Debian на устройстве Orange Pi
Приветствую! Подскажите пожалуйста, какой плагин нужен для JQuery события Pan-х (перетаскивание объекта в горизонтальной плоскости) и как его...