title: Assert in try catch block
body: <p>I am currently adding handling to a segment of code so that it will not crash. Currently it has each step then an ASSERT statement to make sure nothing went wrong in the previous step. If something went wrong in one of these steps something did go very wrong. The program should stop.</p>
  
  <p>Though in release mode the program hits a assert, happily carries on its way and crashes.</p>
  
  <p>To fix this I have wrapped the method in a try/catch block and throw errors where the asserts used to be. This should catch all the errors we track and others we do not.</p>
  
  <p>Now my question is, should I still be using asserts to notify the programmer that this should not have happened? Or take them out now that it will not crash because of the catch block (where I cleanup the object)?</p>
  
  <p>Or alternatively should I just throw an assert in the catch block instead of with each throw statement?</p>