Also, why do we throw the exception instead of returning it?