终止被称为递归

Sha*_*dor 7 c++ linux exception-handling

据我所知,terminate()当异常处理存在一些问题时调用(通常它没有被捕获).我得到的只是一个错误行terminate called recursively.

谷歌搜索了一段时间后,我发现了很多例子

terminate called after throwing an instance of ... terminate called recursively
Run Code Online (Sandbox Code Playgroud)

但这不是我的情况.由于我没有关于异常类型的这一提示,我想知道这terminate called recursively本身意味着什么.

对不起,我无法提供代码,所以任何猜测都会有所帮助.我正在使用Ubuntu 11.04下的g ++ 4.5.2进行编译.

非常感谢,Alex.

Som*_*ude 18

可能是某些代码抛出了一个你没有捕获的异常,这意味着terminate将被调用.终止程序意味着可能会调用对象析构函数,如果其中一个存在异常,terminate则会被"递归"调用.

  • 这不是答案.当析构函数在堆栈展开anther异常期间抛出异常时,该进程将立即终止.试试看吧. (4认同)
  • “终止程序意味着可能会调用对象析构函数” - 他们确实不应该。 (2认同)