三行代码  ›  专栏  ›  技术社区  ›  CosmeticMichu

如何从函数返回错误消息?

c++
  •  0
  • CosmeticMichu  · 技术社区  · 1 月前

    我在C++代码中有一个函数,它应该返回某种类型的数据(在本例中,我有来自Eigen库的定义typedef Eigen::VectorXd vector),但我有一个条件,如果函数的一个参数对我管理的数据类型无效,该函数应该返回错误消息,我尝试了

    else {cout << "the error message\n"}

    使用if-else语句,但是,由于它不返回向量,而是返回print-in-terminal,编译器给了我警告 X control may reach end of non-void function 每次我编译的时候,听到这个消息都有点烦人,你有没有办法摆脱这个警告?提前谢谢你。

    附言:代码正在运行,我只是想修复这个警告,如果你需要函数的实现,请要求它

    2 回复  |  直到 1 月前
        1
  •  2
  •   Spio23    1 月前

    通常通过抛出异常来处理此类错误。 这里有一个例子:

     Eigen::VectorXd Foo(int p1, int p2)
     {
         .....
    
         if (!IsParamsValid(p1,p2))
         {
             throw std::invalid_argument("p1 or p2 is invalid");
         }
    
         .....
     }
    
        2
  •  1
  •   fireshadow52    1 月前

    你可以 return 出现该错误情况时为空向量。当您在调用函数中得到返回值时,只需检查返回向量的大小,并确保它不是零。