I don't really think we need to optimize this, and I'm not the biggest fan of using exceptions as control flow.