title: Using `throw;` on a modified exception
body: <p>I have a function <code>foo</code> that can throw a <code>bar</code> exception.</p>
  
  <p>In another function I call <code>foo</code> but I have the ability to add some more detail to the <code>bar</code> exception if thrown. (I'd rather not pass such information as a parameter to <code>foo</code> as it doesn't really belong there due to the generic nature of that function.)</p>
  
  <p>So I do this in the caller:</p>
  
  <pre><code>try {
      foo();
  } catch (bar&amp; ex){
      ex.addSomeMoreInformation(...);
      throw;
  }
  </code></pre>
  
  <p>Will <code>throw</code> re-throw the modified exception or do I need to use <code>throw ex;</code>? The latter would presumably take a value copy so I'd rather not do that. Would <code>throw</code> take a value copy too? I suspect it wouldn't.</p>
  
  <p>(I'm aware I could verify but I'm concerned about stumbling on an unspecified or undefined construct so would like to know for sure).</p>