title: What happens when an exception is thrown while unwinding the stack from another exception?
body: <p>For example in the following code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  class A {
       public:
             A() { cout &lt;&lt; "A::A()" &lt;&lt; endl; }
             ~A() { cout &lt;&lt; "A::~A()" &lt;&lt; endl; throw "A::exception"; }
       };
  class B {
       public:
             B() { cout &lt;&lt; "B::B()" &lt;&lt; endl; throw "B::exception"; }
             ~B() { cout &lt;&lt; "B::~B()"; }
       };
  int main(int, char**)
  {
       try {
             cout &lt;&lt; "Entering try...catch block" &lt;&lt; endl;
             A objectA;
             B objectB;
             cout &lt;&lt; "Exiting try...catch block" &lt;&lt; endl;
       }
       catch (char* ex) {
             cout &lt;&lt; ex &lt;&lt; endl;
       }
       return 0;
  }
  </code></pre>
  
  <p><code>B</code>'s destructor throws an exception, which invokes <code>A</code>'s destructor while unwinding the stack, resulting in the throw of another exception.
  What will be the program's reaction? </p>