![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam kilka pytan w zwiazku z obsluga bledów i wyjatkami.
Error Handler słuzy tylko do pokazania (w jakis ładny sposob bledu) czy ma jakies szersze zastosowanie? np. tworzenie logu czy powiadamianie o bledzie administratora? Error Handler jest w pewien sposob zwiazany z wyjatkami czy sa to niezaleznie, dwie rozne od siebie sprawy? Jaka role pełni Error Handler gdy korzystamy z wyjatków (przeciez jesli bedziemy korzystac z tych dwoch rzeczy na raz otrzymamy dwie informacje o bledzie?) Czy da sie wyrzucic wyjatek nie korzystajac z try/catch? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Administrator wortalu Grupa: Przyjaciele php.pl Postów: 960 Pomógł: 39 Dołączył: 21.10.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Error Handler słuzy tylko do pokazania (w jakis ładny sposob bledu) czy ma jakies szersze zastosowanie? np. tworzenie logu czy powiadamianie o bledzie administratora? jak przechwycisz blad mozesz z nim zrobic wszystko. wyslac maila, zapisac do pliku, wyslac na gg admina ;] |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
A na inne pytania znacie odpowiedzi?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 197 Pomógł: 0 Dołączył: 11.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po przeczytanu tego moge wywnioskowac, ze da sie wyrzuc wyjatek za pomoca trigger_error() ? Nic nie bylo napisane o throw new Exception() wiec podejrzewam, ze bez try/catch throw new Exception() nie da sie?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 790 Pomógł: 7 Dołączył: 6.02.2003 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Z tego co pamiętam się da, tylko w miejscu w którym go wyrzucasz aplikacja przerywa działanie i zostaje wywułany tylko kod konstruktora tego wyjątka oraz metody __destruct() wszystkich obiektów.
-------------------- Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
A to?
Cytat Error Handler jest w pewien sposob zwiazany z wyjatkami czy sa to niezaleznie, dwie rozne od siebie sprawy? Jaka role pełni Error Handler gdy korzystamy z wyjatków (przeciez jesli bedziemy korzystac z tych dwoch rzeczy na raz otrzymamy dwie informacje o bledzie?)
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 189 Pomógł: 0 Dołączył: 4.03.2005 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Nie mozna otrzymać dwóch informacji o bledzie, bo jesli np. throw bedzie w linii 10, to odrazu przestanie wykonywac reszte z try{} i przewjdzie do catch. I na odwrot. Jesli dasz trigger error i do tego blad krytyczny wczesniej niz throw, to poprostui zakonczy caly skrypt.
A jesli w try{} uzyjesz innego komunikatu trigger_error() (np notice albo warn) to poprostu sie wyswietli komunikat, a reszta bedzie szla dalej. nie wiem czy to o to Ci chodziło, ale... ![]() -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Z jednej strony twoja odpowiedz mnie satysfakcjonuje, jednak moj problem polega na tym, ze nie rozumiem zaleznosci miedzy Error Handlerem i trigger_error() a Wyjatkami i try/catch.
Z tego co sam sobie moge wywnioskowac, wydaje mi sie ze nie powinno sie korzystac z wyjatkow i error handlera jednoczesnie, bo bledy i tak sa wyrzucane przez trigger_error a gdy skrypt nie zakonczy dzialania to jeszcze raz tym razem jako przechwycone przez catch? Zreszta nie wiem za bardzo kiedy wyrzucac wyjatki ... i co do takiego wyjatki sie klasyfikuje ... czytalem o tym w manualu, ale niestety dalej mam metlikw glowie. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 189 Pomógł: 0 Dołączył: 4.03.2005 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Mylisz teraz pojęcia. Error handler to jest funkcja obslugujaca trigger_error(). Ona przejmuje wszystkie błedy ze skryptu wyswietlajac je tak, jak okreslisz w handlerze. Pozatym ERROR_REPORTING moze miec wartosc 0, wiec wowczas nie wyswietli sie komunikat bledu. Wyjątki są uzywane do kontrolowania pracy aplikacji. Jeśli coś nie pójdzie po myśli aplikacji, to wyrzucasz wyjątek.
-------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Czyli rozumiem, ze te dwie rzeczy nie sa ze soba zwiazane w zaden sposob?
Wyjatki sa to bledy, a raczej oznaka ze jakas czynnosc zaplanowana przez programiste nie powiodla sie? Czyli cos w stylu:
Dobrze rozumiem? |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 189 Pomógł: 0 Dołączył: 4.03.2005 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
die() nie ma nic wspolnego z tymi dwoma rzeczami. Die to tylko funkcja, ktora konczy prace skryptu. A triger_error wyrzuca błąd wyglądający z zewnątrz jak ten z php. To czy sie wyswietli zalezy od ustawienia ERROR_REPORTNIG. A wyjątki ułatwiają zarządzanie przepływem aplikacji. Jeśli np coś nie pójdzie po myśli programisty, wówczas wyrzuca się wyjątek i zakańcza prace.
-------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
no wiem, ze die() nie ma z tym nic wspolnego, chodzi mi o przyklad, czy dobrze to rozumiem?
nie jestem pewien kiedy wywoływac wyjatki: i pytam czy wyjatki wyrzuca sie np. w takiej sytuacji:
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 189 Pomógł: 0 Dołączył: 4.03.2005 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Cos takiego. Tylko pamiętaj, że throw mozesz tylko dac w try{}. Jak w try{} wystapi wyjatek, to mozesz z nim zrobic wszystko w bloku catch.
-------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 29.12.2005 Skąd: Z krzaków Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie, czy znacie moze jakis art ktory obszernie w calosci traktuje o wyjatkach i obludze bledow, gdy czytam to tak wszystko czastkowo nie moge tego pojac juz jak praktycznie wykorzystac i w sumie co do czego sluzy throw new expection a error hanlder , trigiger czy inne :/
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Artykułu nie pamiętam ale na pewno bez problemu coś w sieci da się znaleźć.
Dość przyzwoicie opisano wyjątki w tej książce: http://helion.pl/ksiazki/phmsv3.htm jeśli mnie pamięć nie myli. Książka jest droga ale IMHO warta swojej ceny. |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 04:12 |