Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyjątek czy przekierowanie
kangur91
post 4.06.2011, 14:06:45
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 27.07.2008

Ostrzeżenie: (0%)
-----


Witam,
Zastanawiam się co będzie lepszym rozwiązaniem tzn. rzucenie wyjątku czy przekierowanie?

Załóżmy, że mamy napisany jakiś np. system autoryzacji oraz jakiś kontroler przechwytujący wyjątki np. w frameworku ErrorController.
Jeżeli autoryzacja się nie powiedzie co będzie lepszym rozwiązaniem(przekierować do ErrorController czy rzucić wyjątek) i dlaczego? czy może nie ma to większego znaczenia?

Pozdrawiam
Go to the top of the page
+Quote Post
bastard13
post 4.06.2011, 17:51:06
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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ł.

Ten post edytował bastard13 4.06.2011, 17:54:33


--------------------
Go to the top of the page
+Quote Post
kangur91
post 4.06.2011, 22:35:57
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 27.07.2008

Ostrzeżenie: (0%)
-----


Myślę, że odpowiedź jest wystarczająca. Dzięki!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 12:35