title: MadExcept + try/finally block?
body: <p>I have some delphi code, kind of like this:</p>
  
  <pre><code>try
    //some code
    //occasionally throws an exception here, for example an EIndexOutOfRangeException
    //more code...should get skipped if exception is thrown
  finally
    // there may or may not be any important cleanup code here
  end;
  </code></pre>
  
  <p>The exception in this case is not something that needs handling beyond breaking out of the try block. So, before mad-except was added to the project for error troubleshooting, this code was "working". But now I'm getting bug reports because MadExcept is reporting the uncaught exception.</p>
  
  <p>Related question, <a href="https://stackoverflow.com/questions/10746927/madexcept-triggers-on-try-finally">MadExcept triggers on try finally</a> indicates the behavior of MadExcept breaking in such circumstance is "expected" because the exception isn't "handled".</p>
  
  <p>I would like some clarification about what my options are as far ways to prevent a mad-except dialog from popping up when this code runs, regardless of whether there's an internal exception being thrown and ignored.</p>
  
  <p>So I'm correct in thinking there's no switch to disable MadExcept from breaking on unhanded exceptions in a try/finally block? And I'm going to need to explictly "catch" the exception even if I wish to ignore it?</p>
  
  <p>Should I be doing something like this (ignore any exception):</p>
  
  <pre><code>try
    //some code
    //sometimes throws EIndexOutOfRangeException here
    //more code...should get skipped if exception is thrown
  except do begin end;
  end;
  </code></pre>
  
  <p>or perhaps (ignore a very specific exception):</p>
  
  <pre><code>try
    //some code
    //sometimes throws EIndexOutOfRangeException here
    //more code...should get skipped if exception is thrown
  except on E : EIndexOutOfRangeException do begin end;
  end;
  </code></pre>
  
  <p>or maybe it needs to be:</p>
  
  <pre><code>try
    try
      //some code
      //sometimes throws EIndexOutOfRangeException here
      //more code...should get skipped if exception is thrown
    except on E : EIndexOutOfRangeException do begin end;
  finally
    // some cleanup code
  end;
  </code></pre>
  
  <p>If all three of those are valid solutions, should I prefer one over the other for any reason?</p>