Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ErrorHandler i wyświetlanie Parse Errorów
radziel
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 25.04.2003
Skąd: Olsztyn

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


Witam, na wstępie odrazu piszę że mialem problem z "zakwalifikowaniem" tego problemu do ktoregoś z for, na php Początkujący trochę za trudny, a na php Pro - za ... banalny?

Otóż, napisalem sobie ladny ErrorHandler i mam problem z obsługą pewnych typów błędów:

E_ERROR - OK
E_WARNING - OK
E_PARSE - Brak (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
E_NOTICE - OK
E_CORE_ERROR - Brak pomysłu jak "sztucznie" wywołać
E_CORE_WARNING - Brak pomysłu jak "sztucznie" wywołać
E_COMPILE_ERROR - Brak pomysłu jak "sztucznie" wywołać
E_COMPILE_WARNING - Brak pomysłu jak "sztucznie" wywołać
E_USER_ERROR - OK
E_USER_WARNING - OK
E_USER_NOTICE - OK

Przykładowo, testuję to tak:

  1. <?php
  2. include ('plik_z_klasa.class.php');
  3. $e = new Error();
  4.  
  5. //symulacje bledow
  6. ...
  7. echo 'test'
  8. ...
  9.  
  10. ?>


Wiadomo teraz że przy echo wywala Parse Error, ale nie jest to obługiwane przez moją klasę tylko przez defaultowy handler. Jak "przepuszczać" wszystkie błędy przez moją klasę. Co źle robię?


BTW, ma ktoś pomysł jak zasymulować resztę błędów? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
M4chu
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 28.09.2003
Skąd: Rzeszów

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


Cytat(radziel @ 2005-04-11 14:45:42)
(...) na php Początkujący trochę za trudny, a na php Pro - za ... banalny?

Problem nie jest az taki trudno, bo wystarczy otworzyc manuala (!) i poszukac w komentarzach (obsluguje compile i parse):
  1. <?php
  2.  
  3. function fatal_error_handler($buffer) {
  4. if (ereg(&#092;"(error</b>:)(.+)(<br)\", $buffer, $regs) ) {
  5.  $err = preg_replace(&#092;"/<.*?>/\",\"\",$regs[2]);
  6.  error_log($err);
  7.  return \"ERROR CAUGHT check log file\";
  8. }
  9. return $buffer;
  10. }
  11.  
  12. function handle_error ($errno, $errstr, $errfile, $errline)
  13. {
  14.  error_log(\"$errstr in $errfile on line $errline\");
  15.  if($errno == FATAL || $errno == ERROR){
  16.  ob_end_flush();
  17.  echo \"ERROR CAUGHT check log file\";
  18.  exit(0);
  19.  }
  20. }
  21.  
  22. ob_start(\"fatal_error_handler\");
  23. set_error_handler(\"handle_error\");
  24.  
  25. //causes a warning
  26. preg_replace();
  27.  
  28. //would normally cause a fatal error, but instead our output handler will be calle
  29.  allowing us to handle the error.
  30. somefunction();
  31. ob_end_flush();
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: 4.10.2025 - 05:31