![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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 -------------------- |
|
|
![]()
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!
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 12:35 |