Cytat
Jeżeli autoryzacja się nie powiedzie
tzn. chodzi ci o to, że użytkownik podał złe dane, tak?
To w takim wypadku pasowałoby zwrócić false:)
Wyjątek powinien być, ponieważ jest to zachowanie, którego nie dopuszczasz w aplikacji.
Z tym, że wyjątek nie powinien być widoczny dla użytkownika, więc powinno to mniej więcej IMHO wyglądać tak:
1) Autoryzacja się nie powiodła -> rzucasz wyjątek
2) Łapiesz ten wyjątek
3) Logujesz go do bazy, pliku etc. żebyś miał gdzieś zapisane informacje, że taki wyjątek wystąpił
4) Przekierowujesz użytkownika do ErrorController i wyświetlasz jakieś info, że autoryzacja się nie powiodła
Dlaczego tak? Użytkownik wie, że coś się wywaliło, ale ma to zademonstrowane w ładny sposób (a nie informacje o nieprzechwyconym wyjątku:)
Tobie natomiast pozostaje informacja w logach, że coś takiego miało miejsce. Możesz również zapisać z którego ip ktoś spowodował taki wyjątek, co siedziało w sesji, poście i gecie itp. etc. W każdym razie masz dane, które później możesz przeanalizować i spróbować rozwiązać problem w taki sposób, aby już się nie powtórzył.