When to Throw Exceptions

Your code should throw an exception when
  • Something has gone wrong and your code cannot execute normally
  • You catch an exception and want to add some additional information
  • You catch an exception and your application cannot gracefully recover from the problem
Some examples of when you might throw an exception:
  • Parameter value that is out of range passed to a function
  • Parameter values that are inconsistent passed to a function
  • Invalid values passed to function (e.g. username with wrong password)
  • Function called while application is in the wrong state 
Do not throw exceptions
  • As part of normal operation, to control program flow
  • To return data back to code that called a function
  • Just to indicate which function was executing when an exception was caught