Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> trigger error - zmiana spsobu działania
VGT
post 18.07.2007, 17:56:59
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 9
Dołączył: 19.11.2004
Skąd: Iława

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


Na początek dwa krótkie pliki:

index.php
  1. <?php
  2. require_once './class.php';
  3.  
  4. $oTest = new Test();
  5. ?>


class.php
  1. <?php
  2. class Test
  3. {
  4. function Test()
  5. {
  6. $this->_blad('tresc bledu');
  7. }
  8. function _blad($sTresc)
  9. {
  10. trigger_error($sTresc, E_USER_WARNING);
  11. }
  12. }
  13. ?>


Obsluge bledow w swoich klasach zazwyczaj robie tak, ze mam jedna metode wywolywana zawsze wtedy, gdy wystapi gdziekolwiek blad, a w niej dzialania zwiazane z danym bledem + ewentualnie wyswietlenie komunikatu jesli obiekt jest w trybie debugowania.
Pomyslalem, ze moznaby zamiast wyswietlania, skorzystac z trigger_error, dzieki czemu podczas uzytkowania klasy moznaby skorzystac ze wszystkich dobrodziejstw takiego wyswietlania bledow.

Jednak problemem sa dane generowanego bledu. Otwarcie index.php wyswietli cos takiego:

Warning: tresc bledu in /home/vgt/public_html/test/class.php on line 10

Czyli w zasadzie niezaleznie od tego, czy blad spowodowal konstruktor, czy np ktoras z kolei uzywana metoda, komunikat bledu jest zawsze taki sam i nie przekazuje zadnych uzytecznych informacji.

Czy jest mozliwe uzyskanie aby wygenerowany blad wygladal tak:

Warning: tresc bledu in /home/vgt/public_html/test/index.php on line 4

PS. Ewentualnie chetnie wyslucham innych pomyslow, jedynie zaznacze, ze aktualnie musze pisac kod zgodny z php4, wiec try,catch odpada

Z gory dzieki za wszelkie sugestie i pomoc.

Ten post edytował Bonastick 18.07.2007, 17:57:23
Go to the top of the page
+Quote Post
delfinium
post 19.07.2007, 12:22:38
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 6
Dołączył: 30.06.2007
Skąd: Zielona Góra

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


1. set_error_handler()" title="Zobacz w manualu PHP" target="_manual - zapoznaj się najpierw z tym, w wyniku dostaniesz numer, opis, plik i numer linii w której wystąpił błąd

2. debug_backtrace()" title="Zobacz w manualu PHP" target="_manual - jeśli będziesz chciał wyciągnąć więcej informacji o błędzie i całej ścieżce wywołań

Obie funkcje są dostępne w PHP4.
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 29.06.2025 - 14:28