![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Witam
Jestem w trakcie pisania biblioteki - ujednoliconego API - służącej do obsługi usług rozwiązywania captch. Nie muszę chyba nikogo przekonywać, że dobrze zaprojektowany system wyjątków to podstawa. Niestety nigdy się w to nie bawiłem, tzn. często używam wyjątków, ale nigdy nie próbowałem definiować własnych klas wyjątków. Przeczyłem ten artykuł: http://blogs.msdn.com/b/kcwalina/archive/2...ierarchies.aspx Uznałem że zaproponowany tam podział na "usage exception" oraz "system exception" wydaje się rozsądny. Moj kod wygląda następująco:
(przepraszam za tabulatory ale odzwierciedlają one hierarchę). Pytanie: Co należałoby tu zmienić, czy np. "202: insufficient funds" pasuje bardziej do "SystemLogical_Exception" czy może "Usage_Exception". Czy to co zrobiłem ma jakikolwiek sens? (IMG:style_emoticons/default/smile.gif) Ten post edytował wNogachSpisz 26.02.2013, 19:10:13 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. W PHP powinieneś rozróżnić dwie podstawowe "rodziny" wyjątków: LogicalException oraz RuntimeException (hierarchia wbudowanych wyjątków). Te pierwsze wynikają z "błędów programisty", te ostatnie zaś z błędnego użycia przez użytkownik, konfiguracji środowiska i ogóle wszystkiego co możne wystąpić wyłącznie w trakcie działania aplikacji.
2. Twoje wyjątki powinny u swojej podstawy rozszerzać, którąś z tych dwóch gałęzi, nie zaś bezpośrednio klasę Exception. 3. Na dobrą sprawę w większości przypadków nie potrzebujesz nawet własnych klas dla tych wyjątków. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 19:07 |