【问题标题】:How can I handle exception in catch block in c++ [duplicate]如何在c ++中处理catch块中的异常[重复]
【发布时间】:2014-11-18 08:37:05
【问题描述】:

说我有代码

try
{
   .... 
}
catch()
{
   .... // exception occur here ... how to handled. 
}

c++ 中是否有任何机制可以处理上述情况。

【问题讨论】:

  • try/catch...?
  • 通过确保您没有任何可以在异常处理程序中引发异常的代码?
  • 上面的评论听起来像个玩笑,但很严重。
  • 如果你不知道如何处理异常,让你的调用者处理它。
  • 是的,有几种机制。您可以在catch 块内放置try,可以嵌套try 块,可以使用重新抛出(throw; 没有子表达式),可以保存exception_ptr,可以使用@ 987654329@。我们需要更多信息来指导您朝特定方向发展。

标签: c++ exception


【解决方案1】:

如果你认为这是你真正想要的,你可以这样做:

try
{
    try
    {
        //...
    }
    catch( ... )
    {
        //...
        if( .. )
            throw std::runtime_exception( "error occured" );
    }
}
catch( std::runtime_exception& e )
{
    // handle exception of exception handler
}

【讨论】:

  • 我也有同样的想法,但是......不知道这是否是其他任何事情的最佳方式......?
  • @Nihar:你也可以在catch( ... )-body:try{ } catch( ... ){ try{ } catch( ... ) }中加入一个try-catch块
猜你喜欢
  • 2017-03-31
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多