because it hides the fact that the String was missing
from the calling code.
good: could just throw the exception (or wrap it in another)
but that would probably cause much havoc on existing
code.
better: consistent with container pattern to
simply return null.  Calling code can then do
a null check.