I don't like that this is so much code duplication. Can we somehow abstract this? I mean we can easily build an explain all the time and throw the exception based on the returned explain or so?