A czy ja kogoś zmuszam, żeby akurat takiego mechanizmu użyć?
Jest to przykład, który
można zastosować - nigdzie nie napisałem, że
trzeba bo jest to
jedyny i najlepszy sposób obsługi walidacji formularzy.
I akurat stopować tu nie ma czego, bo użycie w taki czy inny sposób wyjątków (czy innej dostępnej konstrukcji) jest bardziej podyktowane kontekstem kodu jaki powstaje.
Nie zabronisz przecież ~lucassus jakiemuś programiście używać ich, jeśli będzie to pasowało do konkretnej sytuacji.
Jak będę chciał, to nawet wyrzucę E_USER_WARNING jeśli tylko w odpowiedni sposób go wychwycę. Bo podanie błędnych danych rejestracyjnych (w tym przypadku) można uznać za wyjątek od poprawnej rejestracji. Lub za błąd użytkownika.
A może wspomniana rejestracja stanowi cześć jakiegoś API? Osobiście wolałbym dostać skonkretyzowany wyjątek na wyjściu niż true/false czy jakiś array i zastanawiać się, czy to jest array z błędami, czy z profilem usera.
I na koniec - nie traktujcie luźnych przykładów jako wykładni - bo nerwy Was zjedzą jak Hammiltona na dzisiejszym wyścigu F1

Edit:
~cbagov: Przedszkole od szkoły różni się tym, że czasami pozwala się malować dzieciom rękami - mimo, że nie jest to "klasyczny przez wszystkich uznany" sposób obsługi farb. Ale przedszkolanki się w takim wypadku nie wysyła do lekarza.