title: Ruby Exceptions -- Why "else"?
body: <p>I'm trying to understand exceptions in Ruby but I'm a little confused.  The tutorial I'm using says that if an exception occurs that does not match any of the exceptions identified by the rescue statements, you can use an "else" to catch it:</p>
  
  <pre><code>begin  
  # -  
  rescue OneTypeOfException  
  # -  
  rescue AnotherTypeOfException  
  # -  
  else  
  # Other exceptions
  ensure
  # Always will be executed
  end
  </code></pre>
  
  <p>However, I also saw later in the tutorial "rescue" being used without an exception specified:</p>
  
  <pre><code>begin
      file = open("/unexistant_file")
      if file
           puts "File opened successfully"
      end
  rescue
      file = STDIN
  end
  print file, "==", STDIN, "\n"
  </code></pre>
  
  <p>If you can do this, then do I ever <em>need</em> to use else?  Or can I just use a generic rescue at the end like this?</p>
  
  <pre><code>begin  
  # -  
  rescue OneTypeOfException  
  # -  
  rescue AnotherTypeOfException  
  # -  
  rescue
  # Other exceptions
  ensure
  # Always will be executed
  end
  </code></pre>