Whether it is valid to return null is up to your business logic. Sometimes you want to return null indicating something is wrong, sometimes you want to throw an exception.
For instance, java.util.Map's get method returns null if there is no key-value mapping for the specified key. java.util.List's get method on the other hand throws an IndexOutOfBoundsException if the index is invalid.
Should you choose to allow a null return value,
you should document that this is a valid return value. Then programmers that call your method know that they should check if the return value is null: