Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php5] Co wrzucić do klasy obsługi błędów?
Joachim Peters
post
Post #1





Grupa: Zarejestrowani
Postów: 196
Pomógł: 2
Dołączył: 1.03.2006

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


Witam,

Napisałem sobie mini klasę do obsługi błędów, jednak nie wiem co do niej mogę jeszcze wrzucić. Myślałem, o zapisywaniu logów, ale czy warto?

  1. <?php
  2. class Error {
  3.  private $errors = array();
  4.  
  5. public function add($type = null, $text = null) {
  6. if(empty($text)) {
  7. switch($type) {
  8. case 'select':
  9. $this->errors[] = 'Wystąpił błąd podczas pobierania danych z bazy!<br />';
  10. break;
  11. case 'insert':
  12. $this->errors[] = 'Wystąpił błąd podczas wysyłania danych do bazy!<br />';
  13. break;
  14. case 'update':
  15. $this->errors[] = 'Wystąpił błąd podczas aktualizowania danych w bazie!<br />';
  16. break;
  17. case 'delete':
  18. $this->errors[] = 'Wystąpił błąd podczas usuwania danych w bazie!<br />';
  19. break;
  20. default:
  21. $this->errors[] = false;
  22. } 
  23. } else {
  24. $this->errors[] = $text . '<br />';
  25. }
  26. }
  27.  
  28. private function display() {
  29. // echo $this->errors;
  30. }
  31. }
  32. ?>

Co jeszcze można do niej dodać?

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





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Ja bym zaczął od tego, co można z tej klasy usunąć - obrzydliwego switcha. A wystarczy zrobić to trochę bardziej obiektowo.

  1. <?php
  2. class Error {
  3. public function __construct($msg) {
  4. $this->msg = $msg;
  5. }
  6.  
  7. public function __toString() {
  8. return $this->msg;
  9. }
  10.  
  11. protected $msg = '';
  12. }
  13.  
  14. class DBSelectError extends Error {
  15. public function __construct() {
  16. parent::__construct('Wystąpił błąd podczas pobierania danych z bazy!');
  17. }
  18. }
  19.  
  20. class ErrorLogger {
  21. public function add(Error $e) {
  22. $this->errors[] = $e;
  23. }
  24.  
  25. protected $errors;
  26. }
  27. ?>


Proste i działa lepiej niż switch...
Go to the top of the page
+Quote Post
UDAT
post
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Cytat(Ludvik @ 6.06.2007, 23:39:22 ) *
Ja bym zaczął od tego, co można z tej klasy usunąć - obrzydliwego switcha. A wystarczy zrobić to trochę bardziej obiektowo.

  1. <?php
  2. class Error {
  3. public function __construct($msg) {
  4. $this->msg = $msg;
  5. }
  6.  
  7. public function __toString() {
  8. return $this->msg;
  9. }
  10.  
  11. protected $msg = '';
  12. }
  13. ?>


A nie prościej użyć klasy Exception ( wbudowanej w PHP ) ?
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: 27.12.2025 - 05:13