我尝试在错误的类型输入上使用std :: cin异常:
std::cin.exceptions(ios::failbit);
然后我试图处理这些例外:
int a;
try { std::cin >> a; }
catch(ios::failure& f) { std::cout << f.what(); a = 42; }
// I would like to continue the program here
然而,失败调用终止,因此程序停止。我知道我可以离开std::cin.exceptions
然后在failbit上抛出并捕获我自己的异常,我只是想知道是否可以避免在此处终止,如果没有,何时以及如何应对ios::failure
适用于std::cin
。