title: When to throw an exception?
body: <p>I have exceptions created for every condition that my application does not expect.  <code>UserNameNotValidException</code>, <code>PasswordNotCorrectException</code> etc.</p>
  
  <p>However I was told I should not create exceptions for those conditions. In my UML those ARE exceptions to the main flow, so why should it not be an exception?</p>
  
  <p>Any guidance or best practices for creating exceptions?</p>