I've been bitten by this before... maybe
it is a feature, but I'm not sure of the
reasoning.

I wrote a line like this:

   num = gets.chomp.to_i rescue max

thinking that a simple carriage return
would assign max to num.

But of course, "".to_i does not give us
an error; it simply returns zero (as does
"foo".to_i or any other such string).

What is the reason for this? My instinct
is that an exception should result.

I know it's been discussed before, but I
can't find it now.

Thanks,
Hal Fulton