I was looking at "Ruby in a Nutshell" on Amazon's site and came across this in the Introduction on page 3:

begin
  f = open(path)
rescue
  puts "#{path} does not exist."
  exit 1
end

Concerns:
  * What if the file exists, but the open uncovers some other condition.  The problem has been misdiagnosed;
  * The "routine" has more than one exit.  This violates the "one entry, one exit" rule of structured programming.

Comments?