By contract, any implementation of the ``++java.util.Iterator.next()++`` method should throw a ``++NoSuchElementException++`` exception when the iteration has no more elements. Any other behavior when the iteration is done could lead to unexpected behavior for users of this ``++Iterator++``. == Noncompliant Code Example ---- public class MyIterator implements Iterator{ ... public String next(){ if(!hasNext()){ return null; } ... } } ---- == Compliant Solution ---- public class MyIterator implements Iterator{ ... public String next(){ if(!hasNext()){ throw new NoSuchElementException(); } ... } } ----