【发布时间】:2025-12-07 23:05:02
【问题描述】:
我正在编写一个在 Visual Studio 2012 中使用向量的程序。这是我的代码有问题的片段:
std::vector< std::vector< std::vector<Eigen::Matrix3d> > > tensor;
//some code
try
{
ret = tensor[x][y][z];
}
catch(...)
{
std::cout << "Index out of range!" << std::endl;
}
当 x、y 或 z 超出范围时,程序终止而不是处理异常。
这与VS中的某些设置有关吗?
【问题讨论】:
-
回答书面问题的唯一方法是猜测
tensor是如何定义的。 -
如何定义无关紧要。问题是关于处理向量抛出的异常。解释 operator [] 不抛出任何异常是我需要的答案。
-
嗯,很好,但是您的示例代码在任何地方都没有使用“向量”,因此您的程序“使用向量”的断言绝不说明问题所在。这使得这个问题成为一个糟糕的问题,即使有人正确地猜到了你试图问的是什么。
-
我必须承认你是对的。我会解决的。
-
我已将反对票改为赞成票。
标签: c++ visual-studio-2012 try-catch subscript