Error Handler, Klasa, PHP 5 |
Error Handler, Klasa, PHP 5 |
7.05.2005, 14:39:04
Post
#1
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
Klasa do obsługi błędów, pochodząca z mojego engine (Valhalla).
Co robimy: tworzymy plik logs.txt w katalogu głównym i nadajemy mu chmod 777.
Przykład użycia:
Edit: wersja skrócona, na dysku leży wersja z set_error_handler Ten post edytował Ociu 8.05.2005, 08:45:24 |
|
|
7.05.2005, 14:58:00
Post
#2
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) |
Ociu, zapoznaj się lepiej z funkcją trigger_error" title="Zobacz w manualu PHP" target="_manual :]
-------------------- |
|
|
7.05.2005, 15:08:32
Post
#3
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
Cytat(bela_666 @ 2005-05-07 15:58:00) Ociu, zapoznaj się lepiej z funkcją trigger_error" title="Zobacz w manualu PHP" target="_manual :] Dzięki, zapoznam się |
|
|
7.05.2005, 19:45:51
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) |
|
|
|
7.05.2005, 20:21:41
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) |
A czemu definiujesz ERROR_FILE zamiast przekazac ja obiektowi/klasie -- enkapsulacja.
Czemu konstruktor zwraca false? -------------------- Nie lubię jednorożców.
|
|
|
7.05.2005, 20:40:08
Post
#6
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) |
Cytat(aleksander @ 2005-05-07 20:45:51)
O ile sie nie myle cus takiego wyświetli "Object #n" Czyż nie mam racji? __toString(); by się przydało -------------------- |
|
|
7.05.2005, 21:07:31
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) |
I wyjatki by sie przydaly -- automatyczne przekazywanie numeru linii i pliku (z backtracka)
Co do __toString()
Czemu? -------------------- Nie lubię jednorożców.
|
|
|
7.05.2005, 22:13:45
Post
#8
|
|
Administrator PHPedia.pl Grupa: Developerzy Postów: 1 102 Pomógł: 2 Dołączył: 14.09.2003 Ostrzeżenie: (0%) |
@dr_bonzo: odpowiedź jest prosta a mianowicie rzutowanie typów, w pierwszym przykładzie php wie, że w obiekcie ma __toString i wywołuje jego, a w drugim najpierw rzutuje $obiekt to stringa ( zamiast użyć __toString ) a potem dokleja 'cokolwiek' :]
:] -------------------- |
|
|
8.05.2005, 08:44:51
Post
#9
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
Cytat(dr_bonzo @ 2005-05-07 21:21:41) A czemu definiujesz ERROR_FILE zamiast przekazac ja obiektowi/klasie -- enkapsulacja. lol, z rozpędu napisałem. Miało być die();
Czemu konstruktor zwraca false? Cytat(aleksander) Masz rację.Cytat(dr_bonzo) I wyjatki by sie przydaly -- automatyczne przekazywanie numeru linii i pliku (z backtracka) no.. znam składnię wyjątków, ale nie wiem jak z nich korzystać, gdy dam np:wywala błąd... Ten post edytował Ociu 8.05.2005, 08:58:57 |
|
|
8.05.2005, 09:17:34
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) |
Cytat(Ociu @ 2005-05-08 08:44:51) no.. znam składnię wyjątków, ale nie wiem jak z nich korzystać, gdy dam np: wywala błąd... Nie możesz ot tak sobie wyrzucić wyjątku. Musisz go przechwycić w bloku catch.
A co do:
to zainteresuj się metodą magiczną __toString() ( o ile piszesz w PHP5 ) |
|
|
8.05.2005, 10:01:11
Post
#11
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 9.11.2004 Ostrzeżenie: (0%) |
Cytat I wyjatki by sie przydaly -- automatyczne przekazywanie numeru linii i pliku (z backtracka) To sie nazywa backtrace |
|
|
8.05.2005, 20:09:54
Post
#12
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków |
Sposób z wyjątkami:
Zamień na:
wywołanie:
|
|
|
8.05.2005, 20:15:57
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) |
OT:
@mike_mech - można wyrzucić wyjątek bez try/catch - ja tak robię - z tym, że trzeba podpiąć handler wyjątków -------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
8.05.2005, 20:31:33
Post
#14
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) |
Cytat(NuLL @ 2005-05-08 20:15:57) OT: @mike_mech - można wyrzucić wyjątek bez try/catch - ja tak robię - z tym, że trzeba podpiąć handler wyjątków OT Ha, to to ja wiem, że można sobie zdefiniować samemu wysokopoziomową obsługę wyjątków:
Ale miałem na myśli to że korzystając z domyślnej obsługi try/catch jest konieczne. |
|
|
8.05.2005, 22:13:18
Post
#15
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 9.11.2004 Ostrzeżenie: (0%) |
Cytat(NuLL @ 2005-05-08 19:15:57) OT: @mike_mech - można wyrzucić wyjątek bez try/catch - ja tak robię - z tym, że trzeba podpiąć handler wyjątków OT @mike_mech: NuLLowi chodziło prawdopodobnie o set_exception_handler" title="Zobacz w manualu PHP" target="_manual, a nie o taką funkcję ;] A poza tym - przykład NuLLa jest czysto teoretyczny i wg mnie bezużyteczny w normalnym skrypcie(NuLL o tym wie ) - wyjątek niezłapany == koniec wykonywania skryptu, tyle że jak sie ten handler ustawi, możesz jeszcze podjąć jakieś akcje przed zakończeniem. |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 05:55 |