无法从c ++中的函数捕获异常

马坎贝尔林

就像标题所说的那样,我无法捕获函数抛出的异常。它只是说“在抛出tocccli :: InvalidParametersError *实例后调用终止”

try{
  cmd_parameters = parse_cmd(argc, argv);
}
catch (InvalidParametersError e){
  // blablabla
}

引发异常的函数

std::vector<CmdParam> parse_cmd(int argc, char* argv[]){
for (int i = 1; i < argc; ++i)
{
  if (argv[i][0] == '-')
  {
   //blablala
  }
  else
  {
    if (result.empty())
    {
      throw new InvalidParametersError(
          "First parameter have to be an option (e.g. starts with a dash)");
    }

    result.back().arguments.push_back(argv[i]);
  }
}

return result;
}

该函数位于名为tocccli的命名空间中,我是否缺少某些内容?

z

不要在中输入new关键字parse_cmd()

std::vector<CmdParam> parse_cmd(int argc, char* argv[]){
for (int i = 1; i < argc; ++i)
{
  if (argv[i][0] == '-')
  {
   //blablala
  }
  else
  {
    if (result.empty())
    {
      throw InvalidParametersError(  // <-- No new keyword here
          "First parameter have to be an option (e.g. starts with a dash)");
    }

    result.back().arguments.push_back(argv[i]);
  }
}

return result;
}

通过const参考捕获:

try{
  cmd_parameters = parse_cmd(argc, argv);
}
catch (const InvalidParametersError& e){
  // blablabla
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法从c ++中的函数捕获异常

来自分类Dev

C ++在构造函数中捕获异常

来自分类Dev

如何从C ++中的构造函数中捕获异常

来自分类Dev

无法捕获C ++异常

来自分类Dev

无法捕获从其他函数引发的异常

来自分类Dev

如何捕获在C函数调用的Haskell回调函数中引发的Haskell异常?

来自分类Dev

为什么我无法在PHP中捕获此“最大嵌套函数”异常?

来自分类Dev

无法通过C ++中的引用捕获引发的异常

来自分类Dev

为什么Python无法捕获C ++中引发的异常?

来自分类Dev

无法在 try-catch C# 中捕获异常

来自分类Dev

我应该在哪里捕获构造函数中引发的C ++异常?

来自分类Dev

无法在线程程序中捕获异常

来自分类Dev

无法捕获servlet中的主键异常

来自分类Dev

无法在Module.php中捕获异常

来自分类Dev

无法捕获PHP中的XML异常

来自分类Dev

在Spring Batch的ItemWriter中无法捕获异常

来自分类Dev

无法捕获servlet中的主键异常

来自分类Dev

无法捕获PHP中引发的COM异常

来自分类Dev

无法在服务层中捕获异常

来自分类Dev

无法在 Symfony 3.4 中捕获异常

来自分类Dev

无法捕获由std :: thread构造函数引发的异常

来自分类Dev

在Swift中捕获Objective-C异常

来自分类Dev

在Haskell中捕获C ++ FFI异常失败

来自分类Dev

在Android NDK C ++代码中捕获异常

来自分类Dev

C++ 在 MessageDialog 中显示捕获的异常

来自分类Dev

无法捕获 c# web api 异常

来自分类Dev

在混合C ++中捕获std异常和系统异常

来自分类Dev

C ++ 11:尝试捕获lambda函数中的类成员时,无法捕获“ this”

来自分类Dev

无法捕获某些异常