いろいろな例外を発生させてみよう
def ex
yield
rescue
"#{$!} (#{$!.class})"
end
ex{1.to_sym} # => "undefined method `to_sym' for 1:Fixnum (NoMethodError)"
ex{1 + "1"} # => "String can't be coerced into Fixnum (TypeError)"
いろいろな例外を発生させてみよう
KeyError
を捕捉しようStopIteration
も捕捉しよう
素直な解答例
rescue するクラスは列挙できる
親クラスでまとめて rescue
以下のコードをデバッグしてみよう
- どんな例外が発生するか
- 本当は何をしたかったのか
- 修正してみよう
[0..9].map{|i| i * 2}