Do not throw exceptions during exception handling, that causes really hard-to-interpret error messages. Instead, log a message and throw outside the exception handler (the code could do with some cleanup, but is localized enough for now). see #367