記事内容
現在Rubyを学習中。
個人的に大事だと思ったものを残す。
rescue節での例外クラスに継承関係について、認識しておくべき点をまとめる。
例外クラスの継承関係
例外クラスの継承元はExceptionクラス
になる。
一番の親クラスになり、最初に置いてしまうと、後の子クラスが反応しないことに注意が必要。
順番を間違えた例
rescue.rb
begin
#NoMethodErrorが発生する箇所
rescue NameError
puts "NameError"
rescue NoMethodError
puts "NoMethodError"
end
上記コードでは親クラスであるNameError
が補足されるとNoMethodError
も捕捉されるため
2個目のrescue節は実行されることがないままとなる。
順番を置き換えることで状況は改善される。