RubyでLoadErrorをキャッチする
移転しました →
require
が失敗したときに発生するLoadError
例外をキャッチすべくこのようなコードを書いたが、うまくいかなかった。
begin require "hogehoge" rescue puts "LoadError!" puts "Install hogehoge gem before running this code." exit end # do something
どうやらrescue
節に何も指定しなかった場合、StandardErrorの例外のみをキャッチするらしい。LoadError
はScriptError
のサブクラスであり、StandardErrorとは異なる継承ツリーにいる。
先ほどのコードを次のように変更すればLoadError
をキャッチできるようになるというわけ。
begin require "hogehoge" rescue LoadError puts "LoadError!" puts "Install hogehoge gem before running this code." exit end # do something