*   >> Læs Uddannelse artikler >> science >> programming

Php Fejl Basics

Grundlæggende om PHP - Del 15 Introduktion Dette er en del 15 af min serie, Grundlæggende om PHP. I denne del af serien, ser vi på det grundlæggende i fejl. Bemærk: Hvis du ikke kan se koden, eller hvis du tror noget mangler (brudt link, billede fraværende), bare kontakte mig på [email protected]. Det vil sige, kontakt mig for det mindste problem, du har om, hvad du læser. Programmering Fejl Der er tre typer af programmeringsfejl. Med andre ord er der tre typer af fejl, der kan forekomme i et program. Du har syntaksfejl, Logic Fejl og Runtime fejl.

Syntaksfejl Dette er den forkerte brug af syntaks. Disse fejl er forkerte udsagn. Når du skriver en erklæring, der er forkert, det er en syntaksfejl. En sådan erklæring kan ikke udføres. For eksempel, i en erklæring kan du skrive en variabel uden $ tegn. Under denne betingelse, er dit program ikke. Afhængigt af hvordan du konfigurerer din PHP installation, kan en sådan fejl angives ved PHP til output-enheden lige før programmet er at blive henrettet, når du giver en kommando til at køre programmet. Med en syntaksfejl, er programmet udføres ikke.

Før PHP eksekveres, er der nogle minimum udarbejdelse, der finder sted. Syntaksfejl ville blive spottet af PHP compiler og rapporteres, og udførelse (fortolkning) af programmet, vil ikke finde sted. Logiske fejl i denne sag, PHP tolk forstår dit program meget godt, og det udfører programmet. Dog, vil programmet ikke gøre, hvad du ville have det til at gøre. Det vil gøre noget lidt anderledes eller helt anderledes. Fejlen er dit. For eksempel kan en løkke, der er nødvendig for at gøre 10 iterationer gøre 5 gentagelser, fordi du kodet det fejlagtigt at gøre 5 gentagelser.

Et andet eksempel er, at en løkke kunne gentage uendeligt, fordi betingelsen du gav for løkken er forkert. Logiske fejl opstår, når program bliver henrettet (fortolket). Den eneste måde at løse dette problem er at teste dit program meget godt, før du afleverer det til kunden (som bad om det). Runtime fejl runtime fejl opstår, når programmet bliver udført som et resultat af det faktum, at du ikke tager visse faktor i betragtning, når kodning. For eksempel, lad os sige at din kode er at opdele 8 af nogle nævner, at brugeren indgange.

Hvis brugeren indgange 2, vil divisionen arbejde, hvilket giver dig 4 som svar. Hvis brugeren indtaster nul, vil opdelingen ikke fungere, fordi 8/0 udefineret. Når der opstår en kørselsfejl dit program normalt går ned (og stop). For at løse runtime fejl, er du nødt til at skrive kode, der vil forhindre udførelsen af ​​den særlige kodesegmentet i at finde sted. I denne division eksempel, er du nødt til at skrive kode, der vil forhindre division med nul i at finde sted, og eventuelt informere brugeren af ​​den fejl, han gjorde ved at indtaste nul som en nævner.

Forebyggelse Runtime fejl Runtime fejl forhindres ved hjælp af det, der kaldes try-catch blokke. Vi skal bruge eksemplet med dividere 8 af en nævneren til at illustrere dette. Betragt følgende kode: $ input = 2; prøv {if ($ input == 0) kaste nyt Exception ("Division med nul er ikke tilladt. '); $ var = 8 /$ input; echo $ var; } Catch (Exception $ e) {echo "Fejl:" $ e> GetMessage (); }?> Prøv ovenstående kode. Du skal have 4 som svaret, vises. Nu ændre værdien af ​​$ input variablen i starten af ​​koden til 0. Du skal have teksten "Fejl: Division med nul er ikke tilladt." vises.

Koden skiller 8 med værdien af ​​$ indgangsvariabel. Når værdien af ​​$ input variablen ikke er nul, alt er fint. Når værdien er nul, der er en fejl, og så programmet ikke bør gå ned. Kode skal skrives for at forhindre, at programmet går ned. Der er fire ting, du bør notere om koden ovenfor. Der er den try-blokken; Der er catch-blokken; der er et objekt oprettet fra en klasse kaldet Undtagelse; og der er en erklæring kaldet kast redegørelse omkring begyndelsen af ​​try blokken. Den try-blok begynder med det reserverede ord, så prøv, så har du par krøllede parenteser.

Udsagnene for try blokken er i de krøllede parenteser. Catch-blok begynder med det reserverede ord, fangst. Det har parenteser med en parameter. Parameteren er en variabel, indledes med den variable type (vi har ikke set denne variabel type, før). Catch-blok har et par krøllede parenteser. Udsagnene for fangsten blokken går ind i de krøllede parenteser. Den allerførste sætning i try-blokken er en if-sætning kombineret med det, der kaldes kast erklæring? Ideen er, at du tjekker, om de $ input variablen er nul. Hvis det er nul, så kast sætningen udføres for at forhindre nedbrud.

Når kast sætningen udføres, siger vi en undtagelse kastes. Når en undtagelse er kastet, er udtalelserne under kast erklæring i try-blok udføres ikke; mens udsagn i catch-blokken skal udføres; det vil sige, når der opstår en fejl, udtalelserne under kast sætning i try-blokken udføres ikke, mens catch-blokken skal udføres til at håndtere problemet. Hvis der ikke sker fejl (i dette tilfælde input ikke er nul), så en undtagelse vil ikke blive kastet. Hvis en undtagelse ikke er kastet, er udtalelserne under de throw udsagn i try-blokken henrettet, og catch-blokken er ikke udført.

Den try-blok har de normale erklæringer, der skal udføres for at løse opgaven kræves af programmet. Disse udsagn udføres på betingelse af, at der ikke er sket fejl. Fangsten blok har de erklæringer, der skal udføres, hvis der opstår en fejl. Normalt, hvad fangsten blok gør, er, at det simpelthen informerer brugeren om, at der er opstået en fejl med en kort beskrivelse af fejlen. Hvis der registreres fejlen i try blokken og catch-blok udføres som i ovenstående kode, så vil programmet ikke gå ned.

Jeg gentager, normalt, catch-blokken ikke gøre meget mere end at vise en kort fejlmeddelelse til brugeren. Forebyggelse af nedbrud er som et resultat af, at de normale udsagn i try blokken ikke udføres, og catch-blokken udføres. Introduktion til Undtagelse klasse Der er en klasse kaldet Exception klassen. Denne klasse har en god antallet af medlemmer og metoder. Til denne grundlæggende tutorial skal vi tale om blot et af sine medlemmer. Medlemmet holder fejlmeddelelse, du ønsker at give til brugeren. Du, programmøren, er den, der træffer afgørelse om fejlmeddelelsen.

Du foder i fejlmeddelelsen, når du opretter et objekt fra klassen. Du opretter et objekt på samme tid, at du kaster undtagelsen. I ovenstående kode, har vi, kaste nyt Exception ("Division med nul er ikke tilladt.") Her det reserverede ord, kaste, er at kaste undtagelsen. Undtagelsen er et objekt, som kan have fejlmeddelelsen og andre ting. I denne tutorial, mener vi kun fejlmeddelelsen. Hvis du vil oprette en undtagelse objekt, begynder vi med operatøren, nye. Dette efterfølges, af navnet på klassen, undtagelse; derefter parentes. I parentes, du skriver fejlmeddelelsen i anførselstegn.

Den Undtagelse klasse har en konstruktør metode, der tildeler denne fejlmeddelelse som værdi til et af sine medlemmer (en af ​​dens variabler). Denne undtagelse objekt kastes at blive fanget være en catch-blok. Så hvis-sætning opdager fejlen, kaster en undtagelse objekt, der kender fejlen og catch-blokken fanger undtagelsen objekt. Catch-blok bruger information i undtagelsen objektet for at fuldføre fejlhåndtering. Catch-blokken Fangsten er som en funktion. Det har parenteser, som har en parameter. Den parameter er variabel for en undtagelse objekt.

Du vælger hvad navn du ønsker for variablen, og forud den med $ tegn. Du forud variablen med ordet, undtagelse. Det betyder den type variabel er en undtagelse. Den indkast udsagn er som en opfordring til catch-blokken. I ovenstående kode, har vi den ekko erklæring. Ekko konstruktion tager en kommasepareret liste med argumenter. I dette tilfælde det første argument er strengen "Fejl:". Denne streng vil blive vist først på browseren. Denne streng angiver over for brugeren, at der er en fejl. Beskrivelsen af ​​fejlen følger den næste argument.

Denne næste argument ekkoet konstruktion er en returværdi af en metode undtagelse objekt. Det, vi har præcist er: $ e->

Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.