繁体   English   中英

c++ 中的 out_of_range try..catch 块异常处理

[英]out_of_range try..catch block exception handling in c++

try..catch块不起作用。 由于我是 C++ 的初学者,请帮我解决这段代码。 我正在尝试在这里完成的相同操作,唯一的区别是我使用的是std::map

map<char, int> d; 
d.insert(pair<char, int>('a', 1));
try {
    cout << d['b'];
}
catch(const std::out_of_range){
    // perform some operations.
}

这里没有例外。 可以抛出std::out_of_range out_of_range 的唯一调用是str.at(i)str1.at(i) 但是str的长度是 3 而str1的长度是 4,并且您的循环确保i永远不会超过2 因此,对于strstr1i绝不会超出界限。

try{
if(dic[li.s.at(i)] > dic1[li.s.at(i)]) {
return false
}else{
throw(dic)
}

}catch(std::out_of_range){ return false } 你需要使用 throw 关键字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM