rescue_from stores exception class names in a hash table, and
associates them with handlers.
When an exception is raised there's a name lookup, and if an entry is
found its handler is invoked. In particular rescue_from does not
emulate Ruby's rescue semantics with regard to inheritance.
Which is the rationale? Don't you think taking is_a? and declaration
order into account would provide a better (expected) usage? I could
write a patch in that case.