Ruby Scoping Oddity

2008-05-22 begin rescue Ruby

This prints out “1”:

begin
  a = 1
  raise RuntimeError, "foo"
rescue => e
  puts a
end

I would think that a would be out of scope inside the rescue section but I guess Ruby considers the rescue section part of the begin/end block?