有时候我们需要手动处理一些能预料到的错误,来保证程序不会崩溃:
void main() {
try {
string s = "bye";
cout << s.at(4);
//cout << s[4];
}
catch (out_of_range& e) {
cerr << e.what() << endl; // cerr就是输出错误信息,e是错误的对象,what就是错误的内容
}
cout << "error!" << endl; // 这一句话可以输出,因为错误被我们手动处理了,程序不会崩溃
}
很明显,上述字符串s只有3个元素,访问4号元素(第五个元素)明显是越界了,因此,使用try-catch块就可以把“out_of_range”数组越界错误抓起来,然后手动处理这个错误。