title: Why bad_exception is not thrown automatically?
body: <p>Why doesn't this piece of code run without error? Isn't <code>bad_exception</code> supposed to be called automatically when an unexpected exception is encountered? Or is it necessary to set a handler for it?</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;exception&gt;
  using namespace std;
  class C{};
  void test() throw(bad_exception)
  {
      throw C();
  }
  int main()
  {
      try
      {
           test();
      } catch(bad_exception&amp; e)
      {
          cout &lt;&lt; "Caught ";
      }
  }
  </code></pre>