Kivételek a php

Ebben a cikkben fogjuk megvitatni veled a leggyakoribb felhasználási PHP kivétel, amely segít, hogy hatékonyan kezeli a hibákat alkalmazások az Ön által létrehozott, és akkor végre megszűnik szenvedni és írni egy csomó felesleges kód megérteni, hogy mi történik akkor, ha az egyes hiba lép fel.
Melyek a kivételek?
Kivételek PHP - különleges körülmények között előforduló, általában, abban az esetben a program hiba. Ezek jelenléte arra utal, hogy valami nincs rendben során az állítólagos események. Általános szabály, hogy a szakértők inkább használni az ilyen helyzetekben, megfelelő utasításokat annak érdekében, hogy elkerüljék a ellenőrizetlen leállás folyamat.
Mivel a PHP kivételeket a gyakorlatban?
Két kivétellel, a keresetet lehet tenni: dobás (dobott) és a fogási (fogott). Ha a kivétel visszavontnak tekintik, ez azt jelenti, csak egy dolog: a tanfolyam a program van valami, ami túlmutat a norma. Ebben az esetben meg kell használni egy másik funkció. Elkapni kivételek kapsz csak egy speciális funkció, amely viszont értesíti az egész programot, amely készen áll a feldolgozásra kivételek.
- Képzeljük el, hogy a böngésző - ez kancsó dobja a labdát, hogy az elkapó.
- A játékos, tészta megpróbálja megütni, de ő nem tér el, hogy nem. Ennek eredményeképpen, ő kap egy figyelmeztetést. Ha egy játékos nem a munka, majd egy védõ lehetőség van, hogy elkapja a labdát.
- Fielder elkapja a labdát, és akkor két lehetőség van: dobd másik mezőnyjátékos (kis távolságra a tésztát), vagy hogy a slugger ki a játék dobtak a labdát rá.
Throw dobó elkapó ebben az esetben össze lehet hasonlítani a rendes eljárásban. Azonban, ha a játékosnak sikerül a tésztát elérje a labdát, aztán jön a nagyon kivétel.
Amikor egy mezőnyjátékos elkapja a labdát, akkor ez a művelet nagyon hasonló végrehajtásának try-catch funkció, mely képes kezelni kivételek. Ez a funkció nem csak magát, hogy végre minden szükséges intézkedést, hanem dobni egy kivételt kiderült, hogy a funkciót.
Hogyan kell helyesen használni kivételek?
Ha azt szeretnénk, hogy megtanulják, hogyan kell kezelni, kivéve, PHP, akkor meg kell érteni egy dolog: a kivételek szerves részének tekintendők a PHP (SPL) standard könyvtár, valamint része a PHP alapelemei, feltéve, hogy azok tartoznak, 5 verzió. Azt is csak akkor van szükség, hogy megértsék a használatuk jellegének.
Kivételt lehet végrehajtani ugyanolyan módon, mint bármilyen más tárgy:
Ennek alapján van egy speciális kivételt a módszereket, hogy lehet nevezni, ha szükséges. Legutóbbi jelentősen megkönnyíti a formáció adott válasz alapján kivétel. Például egy funkciót, mint például a getMessage () lehetővé teszi, hogy egy hibaüzenet. És ez viszont is jelenik meg a böngésző, vagy írjon a napló.
Az alábbi lista a módszer PHP kivételek, amelyek lehetővé teszik, hogy kap egy kivétel üzenet - getMessage ();
- Visszatérés számkód bemutatott kivételével - getCode ();
- Szerezd meg a fájlt, amelynek belsejében kivétel volt - getFile ();
- Visszatérés a sor számát a fájlban, ahol a kivétel bekövetkezett - getline ();
- Return array backtrace () bekövetkezéséig kivétellel - getTrace ();
- Szerezd meg a kivétel előtt keletkeztek a jelenlegi, ha igen, természetesen az volt - getPrevious ();
- Return array backtrace () kivételek formájában húr - getTraceAsString ();
- Visszatért a húrt kivétellel - toString (). Ez a funkció felülírja másként.
A jobb érthetőség kedvéért, a fenti módszerek létrehoz egy felhasználói osztály, amelyet végre kell hajtani a kezdeti kezelése felhasználói fiókok:
Ebben a példában, több helyen egyszerre, amely lehet kivétel. Először is, $ user_id funkció _getUserRecord () típusú kell hogy legyen egész. Ha a folyamat megy a másik irányba, akkor a következő lépés az, hogy létrehoz kivételekkel:
Ezt követően, a felhasználók által létrehozott a rossz ID:
Miután ezeket a lépéseket, a rendszer ezt a bejelentést. Most felidézni Fielder, aki nem csak elkapni a kivételt, hanem a kezelésére:
Ebben az esetben, amikor megkapjuk a fogás egy kivétel, akkor elkerülhetjük a rendszer jelez hibát, alakított PHP alapértelmezés szerint.
Azt se felejtsük el, hogy a keletkezett kivétel lehet állítani, ha a fenti funkciókat try-catch tudta elkapni. Ellenkező esetben egy hibaüzenet jelenik meg a böngészőben. Próbálja meg kitalálni, hogy pontosan hol a fenti példában van egy kivétel dobták.
- Egy új felhasználói objektum a string $ felhasznalo2 = new felhasználó ( 'nem numerikus');
- Feladatot lát __construct () osztály felhasználói;
- Átmenet készül működni _getUserRecord () osztály felhasználói;
- Van egy ellenőrzést $ user_id _validateUserId funkció;
- Ebben az esetben, ha a $ user_id nem ismerik el egy számérték, a kivétel objektum dobni.
Ezen felül, akkor getTraceAsString () függvény annak érdekében, hogy figyelemmel kíséri a további kivételekkel:
Ha a kivétel bekövetkezett mélyebb hívás $ felhasznalo2 = new felhasználó (nem numerikus), akkor a tetején, amíg a try-catch blokk nem tudja feldolgozni.
Most megpróbálunk létrehozni egy kivétel az alkalmazás kódját. Betartása a számkódot kivételével - ez egy nagy lépés, hogy eltitkolja a hibáról a kliens. Alapértelmezésben kivételkód nulla.
Ez azonban lehet változtatni idején kivételével:
Ügyeljen arra, hogy hozzon létre egy osztályt UserErrors:
Így van a módosítás a kivétel kezelő megjeleníti a kivétel kód helyett jelenik meg az üzenet.
Arra is szükség van, hogy más módszerek alkalmazását nyomon követésére kivételek. Például létrehozhat egy osztály Logger:
Ezután elvégezzük kivételkezeléssel módosítását annak érdekében, hogy képes legyen használni az Logger osztály:
Most elértük, hogy a végrehajtása során a program megjeleníti a kivétel kódot. A fájl exceptions_log.html láthatjuk az összes vonatkozó információt a helyét a kivétel.
Ahogy azt már korábban tanultuk, a kivétel - ez egy fontos eszköz a programban részt vevő hibakezelés. Azonban a kibővített kivételek lehetővé teszi a programozó, hogy menjen egy másik szintre.
Ahhoz, hogy létrehozza ezt a fajta kivétel, először meg kell építeni egy osztály kivétel, amely meghosszabbítja az Exception osztály.
Ezt követően meg kell hozzon létre egy egyéni kivétel osztály UserException a fenti, már épített egy kicsit magasabb:
Ennek eredményeként, mi átírta a funkció __construct, amely felelős a végrehajtás a kivitelező. Mivel hoztuk létre az osztály utódja Exception osztály, ebben az esetben célszerű alkalmazni a kivitelező által szülő irányelvet.
Így enyhíti magunkat az állandó hibaüzenetek generáció, a munkájukban csak a kivételes kódot. Törölni is lehet a felvétel funkciót a magazin, hogy pontosan ugyanazt előírt egyéni tervezők.
Most frissíti a kódot alkalmazandó új osztály UserException:
Ahhoz, hogy a változások a kódot, ahol kivételt okozhat. Ehhez válassza ki az osztályt felhasználó.
Most megpróbálunk elkészíteni három kivétellel:
Milyen előnyöket várnak bennünket, amikor a kiterjesztett kizárása?
Először is, mi is létrehozhatunk egy egyéni tervezők.
Másodszor, a kiterjesztett típusú kivételek, átírhatjuk a funkció __construct és fuss egyéni kódot.
Harmadszor szervezik lehetséges kivételével típusától függően az objektumot. Nos, és a negyedik, tudjuk alkalmazni a blokk több elfogott felmerült feldolgozása során kivétel függően típusát.
Hogyan kell használni az erejét több interceptiont?
Amikor kivéve bizonyos típusú lehet sokkal könnyebb kezelni a készülékkel. Hasonló technikát lehet alkalmazni abban az esetben, hogy van néhány különböző típusú kivételek.
Például egy try-catch blokk képes kezelni kivételek csak hagyományos típusú. De ez a technika sokkal szánt váratlan események.
Most megpróbáljuk megváltoztatni a meglévő kódot úgy, hogy UserException kivételek kezelése különleges módon. Ehhez meg kell alkalmazni a másik lehallgatás egységet, és akkor minden váratlan kivételt kell kezelni sikeresen.
A fenti kivételek (UserException és kivétel) lehet kezelni a különböző módon, és néhányan úgy tűnhet, hogy külön a kezelés nem használható. Azonban, mivel akkor kap a show, vagy írjon a lapban speciális kivételek.
Egészében PHP kivétel központosított és egyszerű feldolgozását különféle hibákat futtatását.
--------- Anyagok net.tutsplus.com ---------