use exception instead of return null.