我们在c++代码中遇到了一个问题。当抛出异常时
进程将终止,但是我的代码具有适当的异常
处理。
Core stack is below.
======================
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x00489915 in raise () from /lib/tls/libc.so.6
#2 0x0048b379 in abort () from /lib/tls/libc.so.6
#3 0xf6a1fbdb in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6
#4 0xf6a1d8f1 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6
#5 0xf6a1d926 in std::terminate () from /usr/lib/libstdc++.so.6
#6 0xf6a1da6f in __cxa_throw () from /usr/lib/libstdc++.so.6
一些论坛显示在处理其他异常时,当堆栈展开或出现异常时,可能会发生这种情况。
您能在这里提出解决问题的建议吗?
最佳答案
在以下情况下可以调用终止:
但是您的调用堆栈也有
unexpected
=> __cxa_call_unexpected ()
对我来说,这表明异常规范已被违反。
这将调用unexpected(),默认情况下会调用terminate()。
关于c++ - C++异常处理导致终止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7871854/