`throw e` was my initial implementation of both this one and fatalError(), but for some reason, the exception thrown from here was swallowed somewhere in between. No idea why and where. That is why I did this kind of collecting the messages in messageBuffer and throwing in `throwSummary()`. That works.