Jon*_*ann 1 c++ arrays exception-handling exception try-catch
我使用Java已经很长时间了,不得不回到C++.之前我没有在C++中使用try/catch,现在当我再次工作时,我遇到了一个非常愚蠢的问题.
我有一个未知大小的数组,想要输出其中存在的所有数字.但是,我不想使用C++向量,这会给我一个确切的大小.我尝试的是有一个不应该自行结束的for循环.我想在抛出异常时打破它,我会抓住并处理问题.但是,它不起作用,也不会抛出异常.
任何人都可以开导我吗?:) 谢谢.
for(int i = 0; i < 1000; i++) {
try {
cout << symbols[i] << " ";
} catch (int ex) {
cout << "thrown";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
访问超出其边界的数组会给出未定义的行为,而不是例外.
未定义的行为意味着程序不再是有效的C++程序,并且可能显示任何行为,正确或不正确,但您不能依赖它来保持一致.
您需要自己跟踪大小并使用该大小循环,或者根据需要抛出异常.