title: Exception behavior C++14 vs C++98
body: <p>I have written following program</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;stdexcept&gt;
  
  class Myclass
  {
      public:
      ~Myclass() 
      {
          //throw std::runtime_error("second (in destructor)");
          throw 1;
      }
  };
  
  void fun()
  {
      Myclass obj;
  }
  int main()
  {   
      try
      {
          fun();      
      }
      catch (const std::exception&amp; e)
      {
         std::cout &lt;&lt; e.what();
      }
      catch(...)
      {
         std::cout &lt;&lt; " ... default Catch" &lt;&lt; std::endl; 
      }
      std::cout &lt;&lt; "Normal" &lt;&lt; std::endl;
      return 0;
  }  
  </code></pre>
  
  <p>When I run above program in <code>C++98</code> mode (cpp.sh) it prints</p>
  
  <pre><code> ... default Catch
  Normal
  </code></pre>
  
  <p>When I run it with <code>C++14</code> mode, it does not print anything.  <strong>Why is there a change in this behavior?</strong>  </p>
  
  <p>I do understand that whenever any exception occurred and any <code>destructor</code> (within stack unwinding process) throws any exception, it terminates the application. But here only one time exception is thrown from <code>try</code> block that is from <code>destructor</code>.</p>