Exceptions should be reserved for situations that should never happen under normal circumstances. If these cases we foresee happening, the ElggVersion class should probably be prepared to handle them, and the calling code should check for the problem condition and return a message.