gpt4 book ai didi

c++ - cin 并尝试/捕获

转载 作者:太空宇宙 更新时间:2023-11-04 15:51:04 25 4
gpt4 key购买 nike

我有一个简单的 try catch 用于抛出 cin 异常,但它从不抛出异常。

while(cin>>num) {
try {
if(cin.fail()) {
throw "error";
}
if(num>0) {
cout << "number greater than 0" << endl;
}
}
catch(char* error) {
cout << error << endl;
}
}

为什么不抛出异常?

最佳答案

cin >> num 返回 false,所以你的循环体根本不会被执行。

如果你真的需要使用execption

while(true)
{
cin >> num;
try{
if(cin.fail()){
throw "error";
}
if(num>0){
cout<<"number greater than 0"<<endl;
}
}
catch( char* error){
cout<<error<<endl;
break;
}
}

最好将 try catch 放在循环之外以获得更好的性能

关于c++ - cin 并尝试/捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207838/

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