Inhoudsopgave:
Video: Technology Stacks - Computer Science for Business Leaders 2016 2024
Het echte HTML5- en CSS3-programmeren is gevaarlijk. Veel dingen kunnen fout gaan in PHP. Dus de slimme manier om gegevens te programmeren is defensief programmeren . Deze praktijk houdt het anticiperen op fouten in en probeert ze op een elegante manier op te lossen. PHP heeft enkele geavanceerde technieken voor foutafhandeling beschikbaar die perfect zijn voor de taak.
Stel je voor dat je een code hebt geschreven die er als volgt uitzag:
5/0 afdrukken;
Dat zou je waarschijnlijk niet doen, maar soms valt er slechte code door. Als uw server is ingesteld om foutmeldingen te delen, ziet u zoiets als dit.
Uitzonderingsafhandeling
Er is eigenlijk veel meer aan de hand dan u in eerste instantie zou kunnen waarderen. Het standaard gedrag van veel PHP-installaties is om fouten te verbergen. Er treden echter fouten op, vooral als u gebruikersinvoer toestaat. Deze codelijst haalt expliciet fouten op en rapporteert deze, ongeacht de serverinstellingen:
proberen. phpgetMessage ();} // einde proberen? >
Hier is wat er gebeurt:
-
Gebruik het trefwoord try om potentieel gevaarlijke code aan te geven.
Met het trefwoord try wordt een codeblok geopend (zoals een lus of voorwaarde). Alle code tussen proberen en vangen wordt als potentieel gevaarlijk beschouwd.
-
Plaats gevaarlijke code in het try-blok.
Elke code die fouten zou kunnen veroorzaken, moet in het try-blok worden geplaatst. De gevaarlijkste code omvat meestal dingen die de programmeur niet rechtstreeks kan regelen: toegang tot externe bestanden, bewerkingen op door de gebruiker gedefinieerde gegevens of blootstelling aan externe programma's en processen.
-
Gebruik de catch-clausule om op fouten te anticiperen.
De catch-clausule geeft het einde van de gevaarlijke code aan.
-
Geef het uitzonderingstype aan.
De parameter voor de catch-clausule is een object van het type Exception. PHP heeft een aantal ingebouwde uitzonderingen en vaak bevat een bibliotheek of toolset nieuwe uitzonderingen (je kunt ze ook zelf bouwen als je dat wilt).
-
Beheer de uitzondering.
De catch-clausule opent een nieuw codeblok. Zet de code hier in die het probleem zal oplossen (of sterft op zijn minst met een beetje stijl en gratie - de gebruiker informeren wat er fout ging voordat hij deze sterfelijke pool afhaalt). De meest voorkomende regel hier is om print te bellen ($ e-> getMessage ()). Alle uitzonderingsobjecten hebben een methode getMessage () en deze regel meldt het huidige foutbericht.
Weten wanneer te vangen voor uitzonderingen
Als uw server is ingesteld voor foutopsporing (zoals XAMPP standaard is), is het meestal niet nodig om uitzonderingsafhandeling in te stellen, omdat het standaardgedrag van een foutopsporingsconfiguratie is om meld de uitzonderingen toch.Er zijn een paar keer dat u nog steeds expliciete uitzonderingsafhandeling wilt:
-
u bevindt zich op een server zonder foutopsporingsinstellingen: u hebt mogelijk geen toegang tot de serverconfiguratie, dus mogelijk kunt u de automatische configuratie niet inschakelen uitzonderingsrapporten. Handmatige uitzonderingsrapporten komen nog steeds binnen.
-
U wilt iets speciaals doen: De automatische uitzonderingshandler meldt eenvoudigweg het probleem. Als u iets anders wilt doen (gebruik bijvoorbeeld een standaardbestand als een bestand niet wordt gevonden), hebt u voor die situatie een aangepaste uitzonderingshandler nodig.
-
Je doet iets exotischs: Speciale bibliotheken hebben vaak hun eigen uitzonderingen en je hebt een uitzonderingshandler nodig om deze situaties te dekken.