title: Is there any difference between return and raise an Exception?
body: <p>Consider the following code:</p>
  
  <pre><code>    def f(x):
          if x &lt; 10:
              return Exception("error")
          else:
              raise Exception("error2")
  
      if __name__ == "__main__":
          try:
              f(5)                        # f(20)
          except Exception:
              print str(Exception)
  </code></pre>
  
  <p>Is there any difference?
  When should I use return Exception and When should I use raise?</p>