作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我不明白为什么如果有一个活跃的异常,那么如果再次引发异常,它会导致程序终止。有人可以解释一下吗?
最佳答案
它应该做什么?它不能“双重捕获”或任何东西,简单地忽略一个也没有意义。该标准规定,如果在堆栈展开期间,另一个异常逃逸,则应调用 terminate
。
C++ FAQ 中有更多讨论.一种“解决方案”是将析构函数代码包装在 try/catch block 中,并且不要让异常逃逸。
另一个是提出某种自定义异常链接方案。您将执行上述操作,但不是忽略异常,而是将其附加到当前抛出的异常,并在捕获站点手动处理这两个异常。
我认为最好的解决方案是尝试从析构函数中删除异常代码。
关于c++ - 为什么我的程序在析构函数抛出异常时终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1886491/
我是一名优秀的程序员,十分优秀!