Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyjątek czy przekierowanie
Forum PHP.pl > Forum > PHP
kangur91
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
bastard13
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ł.
kangur91
Myślę, że odpowiedź jest wystarczająca. Dzięki!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.