Autor | Zpráva | ||
---|---|---|---|
Hologos Profil |
#1 · Zasláno: 29. 7. 2010, 13:47:00
Zdravím,
jak to děláte, když vám v ostré verzi probublá vyjímka až na fatal error? Nebo v úplně nejvyšší vrstvě máte odchycení, které rozhodne podle závažnosti vyjímky, jestli vyhodit kód 500? |
||
Nox Profil |
#2 · Zasláno: 29. 7. 2010, 14:43:02
j, mám jakousi "top-level" try-catch
|
||
Majkl578 Profil |
#3 · Zasláno: 29. 7. 2010, 15:07:23
Elegantnějším řešením je vlastní exception handler.
set_exception_handler(function (\Exception $e) { //500 Internal error error_log(…); }); |
||
Hologos Profil |
#4 · Zasláno: 29. 7. 2010, 15:22:57
Majkl578:
Vlastní exception_handler mám trochu na něco jiného. Díky |
||
AM_ Profil |
#5 · Zasláno: 29. 7. 2010, 15:28:36
Hologos:
„Vlastní exception_handler mám trochu na něco jiného.“ mohu se zeptat na co? "Sets the default exception handler if an exception is not caught within a try/catch block." čili vlastní exception handler dělá naprosto přesně co, na co jsi se ptal. |
||
Hologos Profil |
#6 · Zasláno: 29. 7. 2010, 15:38:51
AM:
Ne všechny vyjímky jsou tak závažné, že bych kvůli tomu musel nastavovat hlavičku 500 Internal Error. A jakmile už se spustí exception_handler, už je to jistý fatal error. Proto mi připadá, že rozhodovat to až tam, je pozdě. Jinak ho využívám k tomuto - pokud je vývojové prostředí, tak se vypíše chyba s tracktracem v přehlednější formě, pokud je produkční prostředí, tak se zaloguje. Jinak určitě by se zde daly vést sáhodlouhé slohy o tom, že všechny vyjímky musí být zachycené. Každopádně mi příjde, že pokud někdo místo integeru předá string (např. id) a zapomenu ho odchytit, tak stačí vypsat, že článek nebyl nalezen a později se z logu dozvím, že nemám odchycenou IOException. |
||
Majkl578 Profil |
#7 · Zasláno: 29. 7. 2010, 15:40:49
Hologos:
„A jakmile už se spustí exception_handler, už je to jistý fatal error. Proto mi připadá, že rozhodovat to až tam, je pozdě.“ Tohle je špatně. Pokud výjimka probublá až do globálního prostoru a není zachycena, je fatální ať už je její účel jakýkoliv. Hodná výjimka má být zachycena jinde v příslušném try … catch bloku.
|
||
Hologos Profil |
#8 · Zasláno: 29. 7. 2010, 15:49:41
Majkl578
Já například v této záležitosti souhlasím s panem Vránou. |
||
Časová prodleva: 14 let
|
0