c ++ 如何在 while 循环中进行异常处理以拾取键入错误
c++ How do I do exception handling in a while loop to pick up typing errors
我试图通过在我的代码中使用异常处理来消除无限循环,但它不起作用 有人可以看看这个片段并告诉我我做错了什么吗?
void Addition(float num)
{
cout<<"Please enter number you wish to add:"<<endl;
cin>>num;
while( num!=-9999)
{
Sum+=num;
cout<<"Sum is:"<<Sum<<endl;
cout<<"Please enter number or enter -9999 to exit"<<endl;
try{
cin>>num;
}
catch(...)
{cout<<"ERROR"<<endl;
}
}
}
只有在首先抛出异常时才会捕获异常。代码的任何部分都不会使用throw
关键字引发任何异常。但即使你这样做,你的catch
块也必须在循环中,所以你必须使用break
语句退出循环,如果这是你的意图。
您可以执行以下操作
void Addition(float num)
{
int Sum=0;
cout<<"Please enter number you wish to add:"<<endl;
cout<<"Please enter number or enter -9999 to exit"<<endl;
while( true ) // whcih actually makes it infinite
{
try{
cin>>num;
if(num == -9999)
throw -9999; // you can throw any value in this case
Sum+=num;
}
catch(...)
{
cout <<" ABORTING.."<<endl;
break;
}
}
cout << "Sum is:" << Sum << endl;
}
上面的代码是完全没有必要的,它可以简单地像这样完成
void Addition(float num)
{
int Sum=0;
cout<<"Please enter number you wish to add:"<<endl;
cout<<"Please enter number or enter -9999 to exit"<<endl;
while( true ) // whcih actually makes it infinite
{
cin>>num;
if(num == -9999)
{
cout << "ABORTING.." << endl;
break;
}
Sum+=num;
}
cout << "Sum is:" << Sum << endl;
}
相关文章:
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- 使用返回对象的函数处理错误
- C++:处理错误,看不懂我的错误
- C++ 异常处理错误输出
- C++执行期间的类成员函数错误/异常处理
- 抽象包装带有异常的 C 错误处理的最佳方法
- C++ 读取文件和写入变量时未处理的异常 - getline 错误?
- c ++ 如何在 while 循环中进行异常处理以拾取键入错误
- C++异常处理,错误
- 异常处理C++错误
- 从C‘goto’错误处理范式到C++异常处理范式的转换
- Android NDK 工具链异常处理 seg 错误
- Qt 与 opencv 异常处理错误
- 异常处理和从非致命错误中恢复
- c++中的异常处理从来没有捕捉到基本类型的异常,总是导致分段错误
- 如何为错误输入编写异常处理
- 使用异常处理库的(可能更改的)错误代码
- 文件处理错误(未处理异常)
- 错误处理范例:混合异常和错误代码