From: matz@... (Yukihiro Matsumoto) Date: 2001-04-04T17:38:29+09:00 Subject: [ruby-list:29101] Re: nil.to_f まつもと ゆきひろです In message "[ruby-list:29100] Re: nil.to_f" on 01/04/04, wada@mail2.off.ne.jp writes: |> val = (data[num].to_f rescue 0.0) |ところで, 以下のようなスクリプト | |% cat test.rb | |while gets | $_ = split | 0.step(2, 1) do |i| | begin | $_[i] = $_[i].to_f | rescue | $_[i] = 0.0 | end | end | STDOUT << "#{$_[0]}\t#{$_[1]}\t#{$_[2]}\n" |end | |を実行してみたのですが, |tmp3.rb:5: undefined method `to_f' for nil (NameError) | from tmp3.rb:3:in `step' | from tmp3.rb:3 | |となって rescue されませんでした. 何がまずいのでしょうか. NameErrorはデフォルトでは捕捉されないからですね。 rescue NameError としてください。ということは |> val = (data[num].to_f rescue 0.0) も動かないということですね。すいません。 まつもと ゆきひろ /:|)