#include <iostream>
#include <string>
#include <vector>
#include<stdexcept>
using namespace std;
int main()
{
try
{
vector<int> v{ 1,2,3,4 };
for (int i{ 0 }; i <= v.size(); ++i)
cout << v[i] << " ";
cout << endl;
}
catch (out_of_range)
{
cout << endl;
cerr << "out of range" <<endl;
}
catch (...)
{
cout << endl;
cerr << "something went wrong" << endl;
}
getchar();
}
这个是我尝试对下标越界的异常捕获处理程序,但在vc2017中运行时,总也捕获不了,如下图
,
但是把v[i]改成v.at(i)就可以了
如下图
还望大家指教!多谢