两个异常发生时会发生什么?

Ash*_*dav 5 exception-handling

当程序有两个例外时,程序会表现什么.而且他们都没有被抓住.将调用什么类型的处理程序.我们可以说两种例外都是不同类型的.如果我不清楚我会道歉,但我觉得我已经让自己清楚了.谢谢!!!

如果try块抛出异常并且退出try会破坏所有自动变量怎么办.让我们说一个是自动对象,它的析构函数再次抛出异常.现在我们有两个未被捕获的异常.我的问题是基于这个事实.谢谢!!

Max*_*keh 6

这完全取决于语言.然而,在所有的语言,我知道不可能有永远是在同一时间多个异常(在同一个线程).如果抛出异常,它会向上移动调用堆栈直到它被捕获,在此期间没有代码执行.如果未捕获异常,程序将在另一个程序被抛出之前崩溃.如果它被捕获,则异常不再"活动",并且如果处理程序抛出新的异常,则遗忘旧的异常.


Gre*_*ill 5

在CPU级别(在x86上),有一种称为双重故障的情况:

在x86体系结构上,如果处理器在尝试处理挂起的中断或异常时遇到问题,则会发生双重故障异常.

但是,这种"双重故障"是一种非常低级别的情况,只是操作系统内核所关心的问题.