> > I was just caught out by this odd behaviour: a 'rescue' clause doesn't > > generate an error if given a non-exception class. I had actually written > > rescue Timeout > > which was silently accepted but didn't work. Actually it should have been > > rescue TimeoutError > > Modules also are allowed there. ... and a class is_a module. Obviously, a class which is a subclass of Exception is useful here. But is it ever useful to match against a class which is not a subclass of Exception? Regarding the point about when to perform the check: I would do it when an exception is raised. Perhaps raising a different exception while processing an exception handler is bad form, but maybe a warning to stderr would be in order. begin x = String raise StandardError rescue x # Generate a warning here during exception matching? puts "Never reached" end Regards, Brian.