C++とかJavaに慣れているひとは、つい class MyException < Exception と、Exceptionクラスを継承しがち。けれど、Exceptionクラスの配下には、 fatalとか、NoMemoryErrorなど、致命的なものと、回復可能かもしれないもの(StandardError)が きちんと分けられているのです。 従って、自分のコード中で処理したい例外は、 class MyException < StandardError と書くのが良い。その根拠として、rubyのrescue文は、 begin (例外が発生) rescue (StandardError、またはその派生クラスがここで補足される) end と、補足する例外クラスを指定しないと、デフォルトでStandardErrorを捕まえるように設計されています。 このせいで、rubyunitで補足できない例外