Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obsługa błędów w PDO
nowy_pehapowiec
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

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


Muszę się Was poradzić, jakiej obsługi błędów używacie?

Ja używam: $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); zaraz po zdefiniowaniu połączenia.
Czy jest jakiś lepszy sposób. Może z dokładniejszymi opisami błędów?


pozdro
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ale wyjatki pozwalaja oddzielic normalny kod akcji (wewnatrz try{}) od czesci do obslugi bledow (catch{}).
Ale ja tego nie neguje a nawet się z tym zgadzam (IMG:style_emoticons/default/smile.gif)

No teraz inny kod:
  1. try
  2. {
  3. $product = Product::find($id);
  4.  
  5. $oldProfile = $product->getProfile();
  6.  
  7. $newProfile = $product->getProfile();
  8.  
  9. }
  10. catch ( DAO_ValidationException $e)
  11. {
  12. }

No i super. Tylko w tym momencie nie wiesz co wywolalo wyjątek. Czy to find, czy to getProfile dla oldProfie czy tez moze dla newProfile.
Zeby sie dowiedziec to find czy tez getProfile musi rzucac innym wyjątkiem. Juz wiec raz ze musisz zdefiniowac te wyjątki, dwa ze zaczyna ci rosnąc blok catchow.
No i znowu jednak nie bedziesz wiedzial czy to bylo oldProfile czy newProfile. Trzeba dodac parę ifow. Ostateczne sprawdzanie zaczyna wiec rosnąć w kod. nie zmienia to jednak faktu, ze jest prawdą to co mowiles: sprawdzanie oddzielilismy od logiki.

  1. try
  2. {
  3. $product = Product::find($id);
  4.  
  5. $oldProfile = $product->getProfile();
  6.  
  7. $newProfile = $product->getProfile();
  8.  
  9. }
  10. catch ( DAO_ValidationException $e)
  11. {
  12. }
  13. catch ( FindException $e)
  14. {
  15. }
  16. catch ( getProfile $e)
  17. {
  18. if (oldprofile)...
  19. if (newProfile)
  20. }


Oczywiscie moze nas nic nie obchodzic co wywołało wyjątek - grunt ze sie pojawił i jest źle. Co go wywołało to se kiedys w logach poszukamy.
Go to the top of the page
+Quote Post

Posty w temacie
- nowy_pehapowiec   Obsługa błędów w PDO   23.09.2009, 10:46:04
- - erix   Łapanie wyjątków, to chyba najlepszy z dostępnych ...   23.09.2009, 10:51:02
- - nospor   Cytatjeśli chciałbyś dokładniejszych opisów błędów...   23.09.2009, 10:58:47
- - fander   Cytat(nospor @ 23.09.2009, 11:58:47 )...   23.09.2009, 12:45:58
- - nospor   no ok, ale jak to ma się do pytania? Chodzilo o ko...   23.09.2009, 12:49:40
- - fander   w takim razie niech kolega filtruje i używa PDOExc...   23.09.2009, 13:20:14
- - nospor   no przeciez uzywa wlasnie wyjatkow. w pytaniu chod...   23.09.2009, 13:23:09
- - nowy_pehapowiec   dzięki za wszystkie odp Trocha nieściśle się wyra...   23.09.2009, 16:36:30
- - Crozin   A wiesz w ogóle jak działają wyjątki?   23.09.2009, 17:21:32
- - nowy_pehapowiec   Powiem, szczerze że próbowałem się przez nie przeb...   24.09.2009, 06:53:49
- - Riklaunim   W innych bardziej spójnych pod tym względem języka...   24.09.2009, 10:23:28
- - nowy_pehapowiec   Nie do końca jarzę o co bangla z tymi wyjątkami. ...   25.09.2009, 07:37:04
- - dr_bonzo   pseudokod Kodtry { zaloguj_usera(); pobi...   25.09.2009, 09:07:09
- - nospor   przesadzacie... Pewnie mnie zlinczujecie ale... j...   25.09.2009, 09:15:53
|- - Riklaunim   Cytat(nospor @ 25.09.2009, 10:15:53 )...   25.09.2009, 10:39:39
- - erix   CytatNie lubię tego shitu gdy jest nadużywany. No ...   25.09.2009, 10:37:55
- - nospor   Cytatif(zapiszdane1()){ if(zapiszdane2()){ ...   25.09.2009, 10:40:37
- - erix   Cytatkurcze.... to ze nie uzywam wyjątków nie znac...   25.09.2009, 10:50:48
- - nospor   CytatUwierz, często coś takiego widujęAle to jest ...   25.09.2009, 10:54:21
- - dr_bonzo   Ojej, moze przesadzilem z ku***ca Ale wyjatki po...   25.09.2009, 11:11:06
- - nospor   CytatAle wyjatki pozwalaja oddzielic normalny kod ...   25.09.2009, 11:24:30
- - erix   CytatNo i super. Tylko w tym momencie nie wiesz co...   25.09.2009, 11:44:58
- - nospor   Cytathttp://pl2.php.net/manual/pl/language.exce......   25.09.2009, 11:58:04
- - erix   No nie, ale zawsze pozostaje kwestia konstrukcji w...   25.09.2009, 12:14:25


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

 



RSS Aktualny czas: 13.10.2025 - 22:09