我正在尝试了解异常处理,并且正在测试这个简单的代码:
#include <iostream>
#include <vector>
#include <stdexcept>
using namespace std;
int main()
{
vector<int> v(4);
try
{
v[v.size()] = 100;
}
catch(const exception& e){
cerr << e.what() << endl;
}
}
我希望输出类似于:
超出范围错误:vector::_M_range_check
但是,我收到与执行此操作相同的错误消息:
...
vector<int> v(4);
v[v.size()] = 100;
...
也就是说,通常的“非异常感知”代码。
我的问题是:我正在实施的 try catch 逻辑有什么问题?