Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyjątki PHP, na przykładzie
wNogachSpisz
post
Post #1





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


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:
  1. class Decaptcha_Exception extends Exception
  2. {}
  3. class Decaptcha_Exception extends Exception
  4. {}
  5. /*
  6. 99: unknown error
  7.  */
  8.  
  9. class DecaptchaUsage_Exception extends Decaptcha_Exception
  10. {}
  11. /*
  12. 101: invalid login or password
  13. 102: captcha file not found / file empty
  14. 103: not logged in
  15. */
  16.  
  17. class DecaptchaSystem_Exception extends Decaptcha_Exception
  18. {}
  19.  
  20. class DecaptchaSystemLogical_Exception extends DecaptchaSystem_Exception
  21. {}
  22. /*
  23. 201: unable to decode captcha (too hard or malformed image)
  24. 202: banned
  25. 203: insufficient funds
  26. 204: service overload
  27. 205: invalid response
  28. 206: connection failed/lost/timeout
  29. 207: network error
  30. */
  31.  
  32. class DecaptchaSystemFailure_Exception extends DecaptchaSystem_Exception
  33. {}
  34. /*
  35. 301: php extension not found
  36. 302: php function not found
  37. */

(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? smile.gif

Ten post edytował wNogachSpisz 26.02.2013, 19:10:13
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 16:45