hibakezelés
Kérdésem az volna, hogy ki milyen függvényeket, megoldásokat használ és mire?
set_error_handler()
saját hibaüzenetkezelés, logolás..
trigger_error()
hiba létrehozása (akár logolásra..)
set_exception_handler()
a nem elkapott kivételek kezelésére. ez mondjuk mire jó? bizonyos exception-öknél visszacsinálok dolgokat (pl db, rollback), vagy kezeletlen hibáknál vmi egységes hibaüzenet. de ugye jól érzem, hogy amikor ezt használjuk, akkor a program futása megszakad?
try{
}catch{
}
ha a try-ban valami hiba van, catch-ben hatástalanítom / megcsinálom másképp (pl. db insert-et akartam, de duplicate entry lett volna, így update-et csinálok), aztán mehet tovább a program futása, vagy akár ki is léphetek..
register_shutdown_function()
érdekes felhasználást láttam itt a hozzászólások között. biztosan jó másra is.
egyéb lehetőségek? hasznos felhasználási módok? tippek trükkök? ilyesmik (:
■ set_error_handler()
saját hibaüzenetkezelés, logolás..
trigger_error()
hiba létrehozása (akár logolásra..)
set_exception_handler()
a nem elkapott kivételek kezelésére. ez mondjuk mire jó? bizonyos exception-öknél visszacsinálok dolgokat (pl db, rollback), vagy kezeletlen hibáknál vmi egységes hibaüzenet. de ugye jól érzem, hogy amikor ezt használjuk, akkor a program futása megszakad?
try{
}catch{
}
ha a try-ban valami hiba van, catch-ben hatástalanítom / megcsinálom másképp (pl. db insert-et akartam, de duplicate entry lett volna, így update-et csinálok), aztán mehet tovább a program futása, vagy akár ki is léphetek..
register_shutdown_function()
érdekes felhasználást láttam itt a hozzászólások között. biztosan jó másra is.
egyéb lehetőségek? hasznos felhasználási módok? tippek trükkök? ilyesmik (:
Mindent exception-né
Ha az error action-ben hiba van, akkor a catch ágban már tudom hogy egy hibakezelés van folyamatban és nem route-olom a hibakezelő action-re a hívást, hanem egy egyszerű HTML hibaüzenetet printelek ki ott helyben (és nincs die vagy exit a végén, hiszen a catch blokk az utolsó, ami az index.php végén van):
Egyetlen gondom ezzen [a nekem bevált] megoldással, hogy jó lenne logolni is az olyan eseteket, amikor az error handler pusztult el, azonban a loggolási logika ezt a failsafe mechanizmust elbonyolítaná és ezzel potenciális hibaforrásokat adna a dologhoz.
Ellenkezője
call stack
Nálam a call stack
Persze nem tökéletes és kell hozzá saját Exception osztály, de nekem bevált.
én is
Oké
catch
Egyetlen kiút ebből, ha az error handlert exception-né alakítja a hibát és eldobja azt. Így tudok csinálni például ilyet:
http://weblabor.hu/blog/20080
Üdv,
Felhő