Explain using next() arguments and throw() for iterators