We often use exceptions for flow control. I think in this case I prefer the previous way (but am willing to be contradicted here; @jacknagel)?