title: How should I re-raise a Delphi exception after logging it?
body: <p>Do you know a way to trap, log, and re-raise exception in Delphi code?
  A simple example:</p>
  
  <pre><code>procedure TForm3.Button1Click(Sender: TObject);
  begin
    try
      raise Exception.Create('Bum');
    except
      on E: Exception do
      begin
        MyHandleException(E);
      end;
    end;
  end;
  
  procedure TForm3.MyHandleException(AException: Exception);
  begin
    ShowMessage(AException.Message);
    LogThis(AException.Message);  
    // raise AException; - this will access violate
  end;
  </code></pre>
  
  <p>So I need to re-raise it in the except block but I was wondering if there is a better way to write my own method to handle and (on specific conditions) to re-raise exceptions.</p>