I would like to know if it's a good or bad practice to return null or throw an exception instead.
I consider that exceptions should be thrown when something truly exceptional happened, but returning null is ugly, and, anyways, a layer above will have to check for null and throw an exception, since getting an Id that doesn't exist isn't allowed in my domain.
How to proceed correctly?