requireが失敗したときに発生するLoadError例外をキャッチすべくこのようなコードを書いたが、うまくいかなかった。
1begin
2 require "hogehoge"
3rescue
4 puts "LoadError!"
5 puts "Install hogehoge gem before running this code."
6 exit
7end
8
9# do something
どうやらrescue節に何も指定しなかった場合、StandardErrorの例外のみをキャッチするらしい。LoadErrorはScriptErrorのサブクラスであり、StandardErrorとは異なる継承ツリーにいる。

先ほどのコードを次のように変更すればLoadErrorをキャッチできるようになるというわけ。
1begin
2 require "hogehoge"
3rescue LoadError
4 puts "LoadError!"
5 puts "Install hogehoge gem before running this code."
6 exit
7end
8
9# do something