我需要学习一个研究项目的 C++ 基础, 而我正在实验错误/ 例外处理 。 我确实成功地使用了 < code>throw code > 命令来预测可能发生的事件( 如除以零), 但我无法找到如何捕捉意外例外 。 请使用此示例代码 :
#include <iostream>
#include <exception>
#include <stdexcept>
using namespace std;
void arrayOutOfBound()
{
int a[3] = {1, 2, 3};
try
{
cout << "This should not display: " << a[5] << endl;
}
catch(runtime_error &e)
/* catch(exception &e) // also does not work */
{
cout << "Error: " << e.what() << endl;
}
}
int main()
{
arrayOutOfBound();
}
我猜我一定得在某个地方使用 throw
语句, 但我真的不知道 a[5]
会不会有效(或者用户输入了这个索引,而我没有检查数组大小), 那么我怎么能防止程序崩溃呢? (这种情况在视觉 C++ Express 2010调试器中发生)
注意: 如果我在区块外先做 try {int 结果 { int 结果 = a[5]; /code>, 并尝试在结尾处使用
cout & lt; & lt; 结果 code>, 程序不会编译。 编译者试图帮助我, 但我不能尝试例外处理 。