Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> łapanie wyjątków a połączenie MySql
Gligamesh
post
Post #1





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


Witajcie, poniżej wklejam to co stworzyłem sobie od obsługi błędów i komunikatów (jeszcze nie skończone). Pojawił się spory problem z MySql, chodzi mi o błąd połączenia, proste pytanie jak go złapać ?


  1. $errors = array(
  2. 'error' => array(),
  3. 'warning' => array(),
  4. 'notice' => array());
  5.  
  6. class Error extends Exception
  7. {
  8. protected $level = 'error';
  9. function getLevel()
  10. {
  11. return $this->level;
  12. }
  13. }
  14.  
  15. class Warning extends Error
  16. {
  17. protected $level = 'warning';
  18. }
  19.  
  20. class Notice extends Error
  21. {
  22. protected $level = 'notice';
  23. }
  24.  
  25. function msg($e)
  26. {
  27. global $errors;
  28. $errors[$e->getLevel()][] = (String)$e;
  29. if($e->getLevel() == 'error') {
  30. $tpl = New Template();
  31. $tpl -> assign('e', $e->getMessage());
  32. $tpl -> display('przyklad_bledy.php');
  33. die();
  34. } elseif($e->getLevel() == 'notice') {
  35. // echo $e->getLine().' -> '.$e->getMessage();
  36. }
  37. }
  38.  
  39. function exception_handler($e)
  40. {
  41. msg($e);
  42. }
  43.  
  44. function error_handler($no, $str, $file, $line)
  45. {
  46. if(production_mode === true) {
  47. $msgContent = 'Napotkano błąd aplikacji, numer błędu: '.$no;
  48. } else {
  49. $msgContent = $no.' '.$str.' @ '.$file.' # '.$line;
  50. }
  51.  
  52. msg(new Error($msgContent));
  53. }
  54.  
  55. set_exception_handler('exception_handler');
  56. set_error_handler('error_handler');
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Gligamesh
post
Post #2





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

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


debug_backtrace() - nic przydatnego nie zwraca podobnie jak getTrace()
strpos() - no można i milion innych, miałem nadzieje że jest na to jakiś ładny i fajny sposób

Cytat
utrudniasz sobie życie, bo zajmujesz się grupowaniem błędów zamiast ich usuwaniem - masz problem z szufladkowaniem błędów na takim a nie innym poziomie i dopóki tego nie zrozumiesz.
no tutaj to mnie troszkę poraziłeś. W ramach wyjaśnienia do debugowania i obsługi błędów używam zupełnie czego innego (co nie trafia finalnie na serwer), kto tutaj wmieszał PDO i po co ? nie wiem. To co stworzyłem fakt jest stare (to tylko odświeżenie), ale nigdy nie miało służyć do tego o czym tu piszecie, z błędami ma tylko tyle wspólnego że je łapie i albo wyświetli w naturalnej formie albo zdefiniowany tekst. I masz racje błędy są po to by je usuwać, tylko że jak Ci stock albo serwer zdechnie to raczej wypada w jakiś ładny sposób o tym poinformować. Więc odpowiadając na Twój zarzut, nie szufladkuje błędów i nie mam z tym problemów (ale owszem wrzucam je do jednego wora > wszystkie).

Odnośnie PDO, osobiście do niego nic nie mam ale go nie używam bo nie jest mi potrzebne do szczęścia, czy podnosi poziom bezpieczeństwa ? mity i legendy. Dla mnie jego największą zaletą jest mobilność i współpraca z chyba każdym popularnym silnikiem bazodanowym. Z resztą jak pisano miał zostać w php6 podobnie jak mysqli (które też jest obiektowe i całkiem ciekawe).

odnośnie framework'ów, firmy wymagają przeważnie Zenda dlatego tylko jego jestem zwolennikiem, jednak uważam że używanie tak rozbudowanych narzędzi to prostych stron jest trochę przekombinowane.

Sumując, nie używam czegoś co nie jest mi potrzebne, czytać nie będę stosował FW/PDO bo inni tak mówią, bo jest fajne czy modnie jest używać. Nie jednokrotnie analizowałem na stałe używać Zenda, (PDO też)


Odnośnie tematu, to myślę że nie ma sensu dalej dywagować, działa jak ma, skoro się inaczej nie da to trudno. Thx za zainteresowanie.

Ten post edytował Gligamesh 9.02.2011, 16:45:21
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 18:39