私は例外処理を理解しようとしており、この単純なコードをテストしています:
#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 ロジックの何が問題なのですか?