title: Ruby reraising exception w/ additional string argument
body: <p>Here is the situation. I want all exceptions in doStuff() to bubble up through the code so that they are handled at a higher level.</p>
  
  <p>I'd also like to record how often <strong>any</strong> exceptions are happening in doStuff() at a higher level as well, and am currently doing this:</p>
  
  <pre><code>begin
    doStuff()
  rescue Exception =&gt;
    raise e, "specific error to log in a db"
  </code></pre>
  
  <p>doStuff code throw dozens of exceptions, and I want to capture each of these events to put in the db. There is a doStuff2(), which also can throw identical instructions, and I want to know which function they came from.</p>
  
  <p>Adding the additional string, seems to change the exception itself, and I lose all the nice formatting and trace information that the original exception had.</p>
  
  <p>Any suggestions on how I can reraise the original exception, but also keep track of all the exceptions that are occurring within doStuff()?</p>