在throw
异常之后返回
一个值有什么好处吗?如果不是,是否可以省略 return
语句,是否可以通过某种方式消除编译器错误 C4715:并非所有控制路径都返回一个值
?
提前致谢。
编辑:(示例代码)
for (ushort i = 0; i < itsNumUnits; ++i)
if (unitFormation[i] == unit)
{
return unitSetup[i];
}
else
throw unit;
return 0;
最佳答案
异常抛出后不需要返回值。如果你有这个错误,你应该检查你的代码在不抛出异常的情况下可以到达的路径,例如
if (something)
throw Exception;
else
return value;
无法在“if”的“else”分支中返回值会导致编译错误,因为可能会或可能不会抛出异常,具体取决于 something
的值。
关于c++ - 抛出异常后返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3109943/