title: Is it a good practice to use try-except-else in Python?
body: <p>From time to time in Python, I see the block:</p>
  
  <pre><code>try:
     try_this(whatever)
  except SomeException as exception:
     #Handle exception
  else:
     return something
  </code></pre>
  
  <p><strong>What is the reason for the try-except-else to exist?</strong></p>
  
  <p>I do not like that kind of programming, as it is using exceptions to perform flow control. However, if it is included in the language, there must be a good reason for it, isn't it?</p>
  
  <p><strong>It is my understanding that exceptions are not errors</strong>, and that they should only be used for exceptional conditions (e.g. I try to write a file into disk and there is no more space, or maybe I do not have permission), and not for flow control. </p>
  
  <p>Normally I handle exceptions as:</p>
  
  <pre><code>something = some_default_value
  try:
      something = try_this(whatever)
  except SomeException as exception:
      #Handle exception
  finally:
      return something
  </code></pre>
  
  <p>Or if I really do not want to return anything if an exception happens, then:</p>
  
  <pre><code>try:
      something = try_this(whatever)
      return something
  except SomeException as exception:
      #Handle exception
  </code></pre>