title: Can C++ functions marked as Extern "C" throw?
body: <p>I've got C++ functions that I want to declare using <code>extern "C"</code> even though they are only called in C++ code.  Yes, I know this is strange but it's something I would like to do for consistency since we have mixed C and C++ declarations.  I just want to make sure that declaring a C++ function as <code>extern "C"</code> won't affect the behavior of throwing.</p>
  
  <p>It would look something like this:</p>
  
  <pre><code>extern "C" void foo() {throw exception;}
  
  int bar()
  {
      try
      {
          foo();
      } catch (exception e) { return 1; }
  }
  </code></pre>