c++ - 抛出异常后返回

标签 c++ exception return-value throw

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/

相关文章:

c++ - 如何将参数转发给模板成员函数到 C++ 中的成员基类指针

c++ - 如何通过 `friend` 将流运算符<<放在模板化类主体之外?

java - Context.createSubcontext 抛出异常 javax.naming.OperationNotSupportedException

eclipse - Eclipse 中的 Tomcat 启动 JSF 项目失败

C++帮助编写一个带有头文件声明的类

c++ - 动态分配到二维 std::unordered_map

c++ - 为什么在函数内初始化外部变量会出错?

python - 如何在 python 中的一个 block 中编写多个 try 语句?

c - 如何更改罗马数字转换器中的4个重复数字?

jquery - 等待jquery ajax请求完成并返回值