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

Php Fel Basics

Grunderna i PHP - Del 15 Inledning Detta är en del 15 av min serie, Grunderna i PHP. I denna del av serien, tittar vi på grunderna av fel. 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. Programmeringsfel Det finns tre typer av programmeringsfel. Med andra ord, finns det tre typer av fel som kan uppstå i ett program. Du har Syntax fel, Logic fel och Runtime fel. Syntax fel Det är fel användning av syntax.

Dessa fel är felaktiga påståenden. När du skriver ett uttalande, vilket är fel, är att ett syntaxfel. Ett sådant uttalande kan inte utföras. Till exempel, i ett uttalande kan du skriva en variabel utan $ -tecknet. Under detta tillstånd, inte ditt program fungerar inte. Beroende på hur du konfigurerar din PHP-installation, kan ett sådant fel indikeras av PHP till utenheten strax innan programmet skall utföras, när du ger ett kommando för att köra programmet. Med ett syntaxfel, är programmet inte genomförs. Innan PHP-kod exekveras, det finns en viss minimi sammanställning som sker.

Syntaxfel skulle upptäckas av PHP kompilatorn och rapporteras, och utförande (tolkning) av programmet kommer inte att äga rum. Logiska fel i denna fall, PHP tolken förstår ditt program mycket väl och det utför programmet. Dock kommer programmet inte göra vad du ville göra. Det kommer att göra något lite annorlunda eller helt annorlunda. Felet är ditt. Till exempel kan en slinga som krävs för att göra 10 iterationer göra 5 iterationer, eftersom du kodade det felaktigt att göra 5 iterationer. Ett annat exempel är att en slinga kan upprepa oändligt, eftersom villkoret du gav för slingan är fel.

Logiska fel uppstår när programmet exekveras (tolkas). Det enda sättet att lösa detta problem är att testa ditt program mycket väl innan du lämnar den till kunden (som bett om det). Runtime Fel runtime fel inträffar när programmet genomförs som en följd av det faktum att du inte tog viss faktor beaktas vid kodning. Till exempel, låt oss säga att din kod är att dela 8 av någon nämnare som användaren matar in. Om användaren ingångarna 2, kommer divisionen att fungera, vilket ger dig fyra som svar. Om användaren matar in noll, kommer divisionen inte att fungera, eftersom 8/0 är odefinierad.

När en runtime error uppstår ditt program normalt kraschar (och stoppa). För att lösa runtime fel, måste du skriva kod som kommer att hindra avrättningen av den speciella kodsegmentet från att äga rum. I denna uppdelning exempel måste du skriva kod som kommer att förhindra division med noll från att äga rum, och eventuellt informera användaren av misstag han gjorde genom att mata in noll som nämnare. Förhindra Runtime Fel Runtime fel förhindras med hjälp av vad som kallas try-catch -block. Vi ska använda exemplet att dela 8 av nämnare för att illustrera detta.

Tänk på följande kod: $ input = 2; try {if ($ input == 0) kasta nytt undantag ("Division med noll är inte tillåtet."); $ var = 8 /$ ingång; echo $ var; } Catch (Exception $ e) {echo "Fel", $ e-> getMessage (); }?> Testa ovanstående kod. Du bör ha fyra som svar, visas. Nu ändra värdet av $ indatavariabeln i början av koden till 0. Du bör ha texten, "Fel: Division med noll är inte tillåtet." visas. Koden delar 8 av värdet på $ ingångsvariabel. När värdet av $ ingångsvariabel inte är noll, allt är bra. När värdet är noll, är att ett fel, och så att programmet inte kraschar.

Koden måste skrivas för att förhindra att programmet kraschar. Det finns fyra saker du bör notera om koden ovan. Det finns try-block; det är catch-block; Det är ett objekt som skapas från en klass som heter Undantag; och det är ett uttalande som kallas kasta uttalande kring början av try-blocket. Try-blocket inleds med det reserverade ordet, försök, så har du par klammerparenteserna. Uttalandena för try-blocket är i klammerparenteserna. Catch-blocket inleds med det reserverade ordet, fånga. Det har parenteser med en parameter.

Parametern är en variabel, som inleds med variabeltypen (vi har inte sett denna variabel typ innan). Catch-blocket har ett par klammerparenteser. Uttalandena för catch-blocket går in klammerparenteserna. Den allra första uttalande i try-blocket är en if-sats i kombination med vad som kallas kast uttalande? Tanken är att du kontrollerar om $ indatavariabeln är noll. Om den är noll, då kast sats körs för att förhindra krasch. När kasta uttalande körs, säger vi ett undantag kastas.

När ett undantag kastas, är uttalanden under kasta uttalande i try-blocket inte utförs; medan uttalandena i catch-blocket måste utföras; det vill säga när ett fel uppstår, uttalanden under kasta uttalande i try-blocket utförs inte, medan catch-blocket måste utföras för att hantera problemet. Om inget fel inträffar (i det här fallet, är ingången inte noll), då ett undantag kommer inte att kastas. Om ett undantag inte kastas, är uttalanden under de kasta uttalanden i try-blocket exekveras, och catch-blocket utförs inte.

Try-blocket har de normala satser som ska köras för att lösa uppgiften krävs av programmet. Dessa uttalanden genomförs under förutsättning att inget fel har inträffat. Fångsten blocket har satser som ska köras om ett fel uppstår. Vanligtvis vad catch-blocket gör är att det helt enkelt informerar användaren om att ett fel har uppstått med en kort beskrivning av felet. Om fel upptäcks i try-blocket och fångstblocket genomförs som i ovanstående kod, då programmet inte kommer att krascha.

Jag upprepar, vanligtvis, catch-blocket inte göra mycket mer än att visa ett kort felmeddelande till användaren. Förebyggande av kraschen är ett resultat av det faktum att de normala uttalanden i try-blocket inte genomförs och catch-blocket exekveras. Introduktion till undantag Class Det finns en klass som kallas Exception klassen. Denna klass har ett stort antal medlemmar och metoder. För denna grundläggande handledning ska vi tala om bara en av dess medlemmar. Ledamoten håller felmeddelandet du vill ge användaren. Du, programmeraren, är den som beslutar om felmeddelandet.

Du matar in felmeddelandet när du skapar ett objekt från klassen. Du skapar ett objekt samtidigt som du kastar ett undantag. I ovanstående kod, vi har, kasta nytt undantag ("Division med noll är inte tillåtet.") Här är reserverade ordet, kasta, är att kasta undantag. Undantaget är ett objekt, som kan ha felmeddelandet och andra saker. I denna handledning, anser vi bara felmeddelandet. Så här skapar du ett undantag objekt, börjar vi med operatören, nya. Detta följs av namnet på klassen, Undantag; sedan parenteser. Inom parentes, skriver du felmeddelandet inom citationstecken.

Undantaget klassen har en konstruktor metod som tilldelar detta felmeddelande som värde till en av sina medlemmar (en av dess variabler). Detta undantag föremål kastas fångas vare en catch-block. Så om-satsen upptäcker felet, kastar ett undantag objekt, som inte känner felet och catch-blocket fångar undantaget objektet. Catch-blocket använder information i undantagsobjektet för att slutföra felhantering. Catch-blocket Fångsten som en funktion. Den har parenteser, som har en parameter. Parametern är variabeln för ett undantag objekt.

Du väljer vilket namn du vill använda för variabeln, och före det med $ tecken. Du föregå variabeln med ordet Undantag. Detta innebär att typ av variabel är ett undantag. Kasta-satsen är som ett anrop till catch-blocket. I ovanstående kod, har vi ekot uttalande. Ekot konstruktionen tar en kommaseparerad lista över argument. I detta fall är det första argumentet strängen "Error:". Denna sträng kommer att visas först på webbläsaren. Denna sträng indikerar för användaren att det föreligger ett fel. Beskrivningen av felet följer nästa argument.

Denna nästa argumentet till ekot konstruktionen ett returvärde av en metod för undantagsobjektet. Vad vi har exakt: $ e->

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