*   >> läser Utbildning artiklar >> science >> programming

Grunderna i Undantag i Php

Inledning Detta är en del 1 av min serie, Undantagshantering i PHP. I denna del av serien ser vi på grunderna i undantagen i PHP. Du behöver grundläggande kunskaper i PHP och PHP objektorienterad programmering för att förstå denna serie. Om du inte har kunskap i något av dessa områden sedan från den här bloggen, läsa serien vars första del med titeln "Komma igång med PHP" och en annan vars första del med titeln "OOP Grunderna i PHP". För att nå någon av serien, skriv bara titeln och mitt namn Chrys i sökrutan på den här sidan och klicka på Sök.

Obs: Om du inte kan se koden, eller om du tror att något saknas (bruten länk, bild frånvarande), bara att kontakta mig på [email protected]. Det vill säga, kontakta mig för minsta problem du har om vad du läser. Runtime Error Exempel Betrakta följande kod: $ täljare = 8; $ nämnare = 2; if ($ nämnare = 0!) {$ svar = $ täljare /$ nämnare; echo $ svar; } Else {echo "Division med noll är inte tillåtet!"; }?> Den här koden delar i princip två siffror. I livet kan du inte dela ett antal av noll. Förutsatt att nämnaren matas in av användaren, kan han ingång noll.

Divisionen (process) med noll bör inte tillåtas. Låt oss titta på vad som finns i koden: de två första rapporterna är initiering av heltal. Divisionen bör ske i if-blocket. De if-skick kontrollerar om nämnaren är noll. Om det inte, sker uppdelningen plats i if-blocket. Om det är, else delen av if-konstruktionen visar ett felmeddelande till användaren. Detta kodsegment är OK, för om nämnaren är noll, om-blocket kommer inte att utföras och ingen uppdelning kommer att äga rum. Med ovanstående kod, fortsätter exekveringen av programmet efter if /else konstruktion.

Detta if /else konstruktionen gör divisionen och förhindrar runtime error från att äga rum. If-blocket gör delningen, IF-villkoret kontrollerar om fel skulle uppstå; Om fel skulle uppstå, visar annat blockera ett varningsmeddelande och om-blocket och division inte genomförs. Grundläggande komponenter Undantag Enkelt uttryckt, är undantaget ett fel. Med undantag hantering, har du vad som kallas try /catch konstruktion; består av försök och catch -block. Try-blocket har ett viktigt uttryck, som är, kasta. kasta tar ett nytt objekt som kallas Exception objekt.

Exception-objektet är ett fördefinierat objekt som hjälper dig att hantera undantag. I ovanstående om /annat konstruera, kodsegmentet av intresse, som är det segment som krävs, är den om-blocket. Detta om-blocket är vad gör divisionen. Med Undantagshantering, som kodsegment av intresse går in try-block; felmeddelandet kodsegment eller felhanteraren kodsegment går till catch-blocket. Kastet uttryck i try-blocket kallar catch-blocket passerar ett nytt undantag invändningar mot den. Fångsten konstruktionen är som en funktion.

Detta är den grundläggande syntaxen för undantagshantering, try {//uttalanden av intresse kasta nytt undantag (Felmeddelande, kod); } Catch (Exception $ e) {//hantera felet} Argumentet för kastet uttryck inte gå in parenteser. Det är en ny Exception instansieras objekt som inte behöver ha ett namn. Du kan vrida din kod runt för att ge den ett namn, men det är okej eftersom det är ovan. Parametrarna för den nya undantagsobjektet är båda tillval. Den första är felmeddelandet du valt du vill ge till användare av programmet. Den andra en är ett heltal av valet som representerar felet.

Catch-blocket bör omedelbart följa try-blocket i din maskinskrivning, såsom i ovanstående syntax. Den tar emot den nya instansieras undantag föremål som kastas. Parametern för fångsten blocket är "Exception $ e". Här, ordet, Undantag innebär vilken typ av objekt emot, är ett undantag objekt. $ e är den variabel som identifierar nya instansieras undantagsobjektet (mottagen i catch-block).

Det tidigare programmet på nytt skrivna med try /catch bygga på följande sätt: $ täljare = 8; $ nämnare = 2; try {if ($ nämnare = 0!) {$ svar = $ täljare /$ nämnare; echo $ svar; } Else {kasta nytt undantag ("Division med noll är inte tillåtet!"); }} Catch (Exception $ e) {echo $ e-> getMessage (); }?> Läs och prova detta program. Ändra värdet på $ nämnare till noll och försök programmet igen. Kom ihåg att för kasta operanden ovan, de två argument konstruktorfunktionen av undantaget klassen är tillval. I den här koden har bara felmeddelandet av programmerarens val givits.

Om programmeraren inte ger detta argument, standard felmeddelande av "Okänd undantag" skulle hållas av den nya instansieras undantagsobjektet. Fångsten-blocket fångar undantaget föremål som kastas som parameter (argument), $ e. Undantaget klass har en metod som skulle läsa felmeddelandet du skrev under den exemplifiering av den nya undantagsobjektet. Namnet på metoden är, getMessage. Catch-blocket över bara ekar meddelandet. Läs igenom ovanstående kod igen. I många fall har try-blocket ekvivalent en if-villkor vars blocket kommer att utföra om tillståndet inte upptäcker felet.

Om tillståndet upptäcks felet kommer if-blocket inte köra, och annat delen kommer att kasta undantaget; det vill säga, kommer andra delen kallar catch-blocket skicka argumentet (instansieras undantag objekt) i kast uttryck för det. Fångsten blocket använder argumentet för att visa ett lämpligt felmeddelande (skrivs in under exemplifiering) till användaren. Detta är vad som händer i många fall. Fel vanligtvis inte hanteras i den verkliga bemärkelse; vanligtvis ett felmeddelande skickas till användaren, en om-konstruktion i try -blocket hindrar felet från att faktiskt inträffar.

Efter detta utförande, fortsätter programmet i sekvensen från try /catch konstruktion; och det finns ingen uppsägning av programmet även om ett fel upptäcktes. Kasta Uttryck i en funktion Du kan sätta vad du behöver för try-blocket i en funktion som visas nedan: $ täljare = 8; $ nämnare = 2; fungera errFn () {if {$ svar = $ täljare /$ nämnare ($ nämnare = 0!); echo $ svar; } Else {kasta nytt undantag ("Division med noll är inte tillåtet!"); }} Try {errFn (); } Catch (Exception $ e) {echo $ e-> getMessage (); }?>

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.