public override object first() { if (_first == sentinel) { // Java code wraps this in a try/catch, where the catch wraps the Exception with a RuntimeException. // We can just let it pass through. _first = _f.invoke(); } return _first; }