title: When can an exception in a .NET WinForms app just get eaten without being caught or bubbling up to a windows exception?
body: <p>In several places in our code, we notice that if running under debugger it'll show that there's an unhandled exception in the code, however if running outside the debugger it will just ignore the exception completely as if it were caught.  We have an exception handler that pops up an error submit dialog that's hooked up to Application.ThreadException and AppDomain.CurrentDomain.UnhandledException
  And neither of those appear to be catching them either.  We also log our exceptions and nothing appears in the log.</p>
  
  <p>What are some possible reasons for this?</p>
  
  <p>Edit: It seems that it isn't dependent on the type of exception throw, but rather where it is thrown.  This was tested by just adding:</p>
  
  <pre><code>throw new Exception("Test Exception");
  </code></pre>
  
  <p>It'll show up under debugger but doesn't show up outside, so in our case it's not a ThreadAbortedException or anything that's dependent on it being a specific type of exception.</p>