gpt4 book ai didi

c++如何在while循环中进行异常处理以发现输入错误

转载 作者:行者123 更新时间:2023-11-28 05:23:46 26 4
gpt4 key购买 nike

我试图通过在我的代码中使用异常处理来消除无限循环,但它不起作用,有人可以看看这个片段并告诉我我做错了什么吗?

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 block 也必须在循环中,所以如果这是你的意图,你必须使用 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;
}

关于c++如何在while循环中进行异常处理以发现输入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40954615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com