gpt4 book ai didi

c++ - 为什么我的程序在析构函数抛出异常时终止?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:31 26 4
gpt4 key购买 nike

我不明白为什么如果有一个活跃的异常,那么如果再次引发异常,它会导致程序终止。有人可以解释一下吗?

最佳答案

它应该做什么?它不能“双重捕获”或任何东西,简单地忽略一个也没有意义。该标准规定,如果在堆栈展开期间,另一个异常逃逸,则应调用 terminate

C++ FAQ 中有更多讨论.一种“解决方案”是将析构函数代码包装在 try/catch block 中,并且不要让异常逃逸。

另一个是提出某种自定义异常链接方案。您将执行上述操作,但不是忽略异常,而是将其附加到当前抛出的异常,并在捕获站点手动处理这两个异常。

我认为最好的解决方案是尝试从析构函数中删除异常代码。

关于c++ - 为什么我的程序在析构函数抛出异常时终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1886491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com