如题。当dump定位到这个地方时,有理由怀疑是下标访问string时越界了。 我们先看Checked Iterators中的例子。 // compile with: /EHsc #define _SECURE_SCL 1 #define _SECURE_SCL_THROWS 1 #include <vector> #include <iostream> using namespace std; int main() { vector v; v.push_back(67); int i = v[0]; cout << i << endl; try { i = v[1]; } catch (std::out_of_range) { cout << "invalid container access" << endl; } }; 这里vector访问越界,catch会抓到异常。但是如果把vector换成string: #include <string> int main() { string str = ""; char s; try { s = str[1]; } catch (std::out_of_range) { cout << "invalid container access" << e