我试图用这个代码为try-catch测试产生一个错误,我希望在访问a[3]
(第四个)元素时会出错.即使没有得到错误,for循环也必须在五次迭代后停止,这种情况永远不会发生.
int a[3] = {1, 2, 3}; for(int i = 0; i < 5; i++) { std::cout << i << ": " << a[i] << std::endl; }
输出:
0: 1 1: 2 2: 3 3: 1970756548 4: 4201552 5: 2686800 6: 2130567168 7: 0 8: 0 9: 2686824 10: 4198992 . . . 4150: 0 4151: 0 4152: 0 4153: 0 4154: 0
LogicStuff.. 7
它是未定义的行为(UB),您的数组中没有(至少)五个元素.你不能抓住UB,例外就是我们catch
.这里没有更多的争论,但请参阅评论部分中的有趣链接.
它是未定义的行为(UB),您的数组中没有(至少)五个元素.你不能抓住UB,例外就是我们catch
.这里没有更多的争论,但请参阅评论部分中的有趣链接.