I'm missing something.  Wouldn't you ``raise e`` if ``caught_exception`` wasn't an instance of one of the exceptions we are trapping on?