【问题标题】:Rethrowing from caught从被抓中重新投掷
【发布时间】:2009-06-24 21:45:35
【问题描述】:

如果我抛出异常:

throw Cat("Minoo");

然后我在调用堆栈的某个较低级别捕获并重新抛出 ...:

catch(...)
{
  throw;
}

然后在调用堆栈中的其他较低级别我尝试捕捉:

catch(const Cat& c)
{
  //Will it enter here, and if so will c be valid data?
}
catch(...)
{
}

【问题讨论】:

  • 有这样的问题。为什么不试试。您需要 30 秒才能找到答案。
  • @Martin York:因为如果我的问题的答案实际上是无效数据,那么就无法验证这一点。因为有时它是有效的,有时不是。

标签: c++ exception


【解决方案1】:

是的,这是正确的。这在我在上一个问题中链接到的 C++ 常见问题解答部分的the very next question 中得到了解决。

【讨论】:

  • 谢谢,抱歉没看到。
【解决方案2】:

我会说是的,它会捕获它并且应该是有效的。这实际上很容易测试(至少您会知道它是否适用于您的编译器)。如有疑问,请尝试一下;)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多