This case doesn't do anything because ConnectionFailure is the superclass of AutoReconnect, so any AutoReconnect errors will have been caught already. I know this code was there before, but we may as well just delete this case.

Actually, do we really need any of these here? Any errors that get thrown will print out something into the logs regardless. Since we're always just re-throwing the error (which I think is a good thing) it might make more sense to just not catch anything and get rid of the inner try block.