![](/img/trans.png)
[英]Why is there a need for a try block before catch in exception handling c++
[英]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
。 因此,对于str
或str1
, i
绝不会超出界限。
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.