Почему внешний temp
становится пустым после отлова первого исключения?
#include <iostream>
int main()
{
std::string temp("exception");
int value;
while(std::cin>> value && value != 0)
{
try{
if(value > 9) throw temp;
else std::cout << value << "\n";
}
catch(std::string temp)
{
std::cout << temp << "\n";
}
}
return 0;
}
Входные данные:
1
2
11
13
Выход:
1
2
exception
// Printing Empty string
Ожидаемый результат:
1
2
exception
exception
Я компилирую свой код с помощью g++ 7.3.0.