Php kivételkezelés
Minden webes felhasználók tudják, milyen bosszantó néha, hogy nyissa meg az oldalt, és látni, hanem a régóta várt cikk / blog / images malovrazumitelny egy szöveget, azt mondja egy szerver hiba. Sajnos a valóság az internet, hogy ez nagyon nehéz, hogy egy script, hogy egyformán jól működik minden platformon és bármilyen szerver beállításokat.
Ezért nagyon fontos, hogy pontosan azonosítani, és kezeli a hibákat, hogy előfordulhat a forgatókönyvet. hibakezelés és a kivételkezelés - erre két mechanizmus által biztosított PHP.
Egy fejlesztő szemszögéből, a fő különbség a hiba kizárása, hogy ha hiba történik a forgatókönyvet továbblépünk, és bekövetkezése után a kivétel - nem.
A másik különbség - kivételkezelésre használata szükséges speciális funkciók és nyelvi elem, és hibák kezelésére - egyetlen funkciója.
Kivételtől eltekintve - az esetleges veszélyhelyzet során felmerülő forgatókönyvet. A PHP segítségével generál egy kivétel ( „dobja”, „ok”), és elkapni. Kivételt senerirovatsya mint tolmács és fejlesztő.
kivételt dob az alábbiak szerint:
Lehallgatás kivételek segítségével próbálja szerkezetét. fogni. Ebben a konstrukcióban általános formája lehet írni:
Érdemes megjegyezni, hogy a fogás blokkokat lehet sok, egy-egy osztályban fogások kivételével. Így, akkor létrehozhat egy szűrőt kivételek. azaz lehallgatott, nem minden, de csak néhány kiválasztott típusú kivételek, és az összes többi kerül elfogott az alapértelmezett kezelő PHP.
Hozhat létre saját feldolgozó iskoyucheny osztály örökli a Exception osztály. Osztály saját kivételkezelés - egy praktikus eszköz, fejlesztő, megadva a lehetőséget, hogy vezesse a naplók, egy hibaüzenetet jelenít meg, változtassa meg a végrehajtása során a forgatókönyvet, és még sok egyéb.
A jogos kérdés - miért okoz hibát? Vegyünk egy egyszerű példát - függvényében megalakult a társaság tevékenységi jelentését. Ez a funkció tartalmaz néhány száz sornyi kódot, ami egy tucat funkciókat és adatokat olvas adatbázisokat és fájlokat. Most olyan helyzet, amelyben az egyik adatbázisok hirtelen elájult, és tudtuk róla csak a közepén az eljárást. Ha nincs adat, és a jelentés elkészítéséhez nincs értelme - nem teljes és nem megfelelő. De hogyan lehet szakítani a fő funkciók egyidejűleg adja meg a részleteket a hibákat? Meg lehet tenni néhány if..else, de egyszerűbb megoldás az, hogy kivételek.
Ebben a példában kijelentjük két utódja a Exception osztály és végre jelentést generáció. Az első dolog, amit tartalmazza az összes szükséges adatforrások (adatbázisok, fájlok, stb.) Ha legalább egy forrás nem áll kapcsolatban - nem tudja folytatni a munkát, és hogy figyelmeztesse a rendszergazda hiba. Ezért létrehoz egy kivételével típusú ExceptionMailer. Ha a kapcsolat sikeres volt - de tovább dolgozunk, az adatok feldolgozása jelentést létrehozni egy sablont. Ha a minta nem található - létrehoz egy megfelelő kivétel.
Ebben a példában egy fontos szerepe van a sorrendben fogás, vagy inkább hogyan ellenőrizheti, hogy milyen típusú kivétel. Az első üzembe kivétellel, az összes többi kivételtől soha nem fog működni, mert tervezés catch (Exception $ ex) felfogja abszolút minden rendelkezésre álló kivételek.
PHP lehetővé teszi, hogy használja a kivételkezelőt. Ehhez meg kell, hogy állapítsa meg a saját feldolgozási funkciót és regisztrálja azt a set_exception_handler () függvényt.
Ezt követően, minden van egy kivétel, nem keretezett tervezés próbát. kivéve, akkor kerül át a funkciót nyilatkozatot. Például meg lehet változtatni a funkciót, hogy ő írta a kivételeket a fájlt, és megjelenik a felhasználó a böngészőben a „szép” szerver hibaüzenetet:
Néha ez a funkció is nagyon kényelmes, különösen, ha a hibakeresés parancsfájlok közvetlenül a kiszolgálón. Ha a kimeneti kivételek mint általában a böngésző - képesek lesznek látni látogatók, de nem ad hozzá a népszerűségét a webhelyen. Sokkal kevésbé fájdalmas érzékelik a felhasználók egy üzenetet, mint a „Sajnáljuk, a szerver karbantartás alatt, akkor próbálj meg bejelentkezni később.”. Ezért az összes hibát és kivételeket kell írni a fájlokat, vagy még jobb, küldjön e-mailt, és a rendszergazda.
Egy jó szokás, hogy hozzon létre oldalakat tekintik teljes hiánya hibákat. Ha hiba történik - azokat kell feldolgozni és bemutatni, hogy a felhasználó és a fejlesztő számára érthető formában.