higaki / learn_ruby_kansai_69

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ruby初級者向けレッスン 69回

例外

演習問題1

いろいろな例外を発生させてみよう

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)"

回答例

演習問題2

いろいろな例外を発生させてみよう

  • KeyError を捕捉しよう
  • StopIteration も捕捉しよう

素直な解答例
rescue するクラスは列挙できる
親クラスでまとめて rescue

演習問題3

以下のコードをデバッグしてみよう

  • どんな例外が発生するか
  • 本当は何をしたかったのか
  • 修正してみよう
[0..9].map{|i| i * 2}

回答例

About


Languages

Language:Ruby 100.0%