title: What is purpose of 'else' block after try-except?
body: <p>While learning python, I have read questions regarding my one but I could not get why such implementation is done by python.</p>
  
  <p><strong>Case-1</strong>: Exception is thrown &amp; <code>sd</code> is set to 45</p>
  
  <pre><code>try:
      raise ValueError()
      sd = 45
  except(OSError): 
      sd = 50
  else:
      sd = 23
  </code></pre>
  
  <p><strong>Case-2</strong>: Exception is handled by <code>except</code> &amp; sd is set to 50</p>
  
  <pre><code>try:
      raise ValueError()
      sd = 45
  except(ValueError): 
      sd = 50
  else: 
      sd = 23
  </code></pre>
  
  <p><strong>Case-3</strong>: No error is occurred then else will be executed &amp; <code>sd</code> is set to 23</p>
  
  <pre><code>try:
      sd = 45
  except(ValueError): 
      sd = 50
  else: 
      sd = 23
  </code></pre>
  
  <p>We always wish that our code must work &amp; if error is thrown it should be handled. But why <code>else</code> play role here that, if code in try block have no error then run this.</p>
  
  <p>Please suggest if I misunderstood, missed or misdirected.</p>