title: What's the difference between raise, try, and assert?
body: <p>I have been learning Python for a while and the <code>raise</code> function and <code>assert</code> are (what I realised is that both of them crash the app, unlike try - except) really similar and I can't see a situation where you would use <code>raise</code> or <code>assert</code> over <code>try</code>.</p>
  <p>So, what is the difference between <code>raise</code>, <code>try</code>, and <code>assert</code>?</p>