>> If you have an exception like `BadCredentialsException` and throw it 
>> during authentication if the user has entered wrong login data, than 
>> you have such a situation right?
>> But do you need any further information? No - in the catch block it may 
>> be enough to create a message for the user saying: "wrong username or 
>> password".
>
> I believe that the example you provided, the one with
> 'BadCredentialsException', is a good example of a bad design and usage
> of exceptions, at least from my point of view.
>
> The fact that frameworks like Symfony2, Zend Framework or other php
> libraries/frameworks (ab)use the exceptions it doesn't mean that it's
> a good thing or you should have exceptions for everything.

Alright... all bigger frameworks have a bad design... 

> The provided example could just as well return false; for the login
> function and that's it, no? 

What if a false login could have different reasons? And these reasons could be
dynamic because other users may add event listeners and add additional 
"exceptional cases"?
`false` cannot contain this information.

> Exceptions should be used for exceptional cases where the application 
> can't recover automatically from them.
> They are, even as their name suggests, exceptional cases, while a bad
> credential for a user login is not :)

I think you are confusing "exception" with "error". It is a point of view 
wheather
a case is exceptional or not. In my opinion bad credentials are an exception
because the normal flow is a successful login.

Best regards
--
Christian Stoller
LEONEX Internet GmbH

Reply via email to