title: Assert in Try..Catch block is caught
body: <p>Just came across some interesting behavior - <code>Assert</code> being caught by <code>Catch</code> block. </p>
  
  <pre><code>List&lt;Decimal&gt; consArray = new List&lt;decimal&gt;();
  try
  {
      Decimal d;
      Assert.IsTrue(Decimal.TryParse(item.Value, out d));
      consArray.Add(d);
  }
  catch (Exception e)
  {
       Console.WriteLine(item.Value);
       Console.WriteLine(e);
  }
  </code></pre>
  
  <p>Assert throws <code>AssertFailedException</code> and its caught by <code>catch</code>. Always thought that if <code>Assert</code> fails then test is failed and consecutive execution is aborted. But in that case - test moves along. If nothing wrong happens later - I get <strong>green</strong> test! In theory - is it right behavior?</p>
  
  <p>Edited: I understand that maybe it is .NET restriction and how asserts are made in MsTest. Assert throws exception. Since <code>catch</code> - catches everything it catches assert exception. But is it right in theory or MsTest specific? </p>