Should a retrieval method return 'null' or throw an exception when it can't produce the return value?

Robert picture Robert · Oct 6, 2008 · Viewed 154.7k times · Source

I am using java language,I have a method that is supposed to return an object if it is found.

If it is not found, should I:

  1. return null
  2. throw an exception
  3. other

Which is the best practise or idiom?

Answer

Ken picture Ken · Oct 6, 2008

If you are always expecting to find a value then throw the exception if it is missing. The exception would mean that there was a problem.

If the value can be missing or present and both are valid for the application logic then return a null.

More important: What do you do other places in the code? Consistency is important.