§ Waarom foutafhandeling belangrijk is

Een error is niet te voorkomen. Probeer je zelf zo goed mogelijk te helpen en zorg dat je geen bezoekers, en potenciële klanten verliest en begin vanaf regel 1 met foutafhandeling.

§ Waarom kan ik niet even alleen de fout oplossen?

Er is een error opgelopen bij PHP en beginners weten niet wat ze er mee moeten. Ze vragen het op het forum en dan krijg je de eerste 5 berichten alleen maar gezeur dat je goede foutafhandeling moet toevoegen. Waarom geven ze niet gewoon even de oplossing?

Het antwoord is simpel. Een programmeur zal altijd fouten maken. Hoe goed je ook bent in het scripten zodra je een script hebt gemaakt zullen er altijd fouten inzitten. In de test fase zul je probeer zoveel mogelijk fouten op te lossen, maar grote kans dat er een paar toch in blijven zitten.


Je wilt het liefst zo min mogelijk tijd kwijt zijn aan het vinden van de fout. De foutmelding van PHP zal nooit geweldige informatie geven, daarom kun je beter even wat meer tijd steken in het bouwen van een mooie foutafhandeling. Hierdoor kun je makkelijk en snel vinden wat de fout is.

Later als je in de productie fase zit zul je niet willen dat je gebruikers de fout zien. Daarom is het belangrijk om op dat moment de fout op te vangen en een bezoekers vriendelijke foutmelding te geven. Je kunt zelfs helemaal niks weergeven, mocht het om een niet kritieke fout gaan. Het tonen van de PHP error aan de bezoeker geeft een niet professionele uitstraling en kan voor veiligheids lekken zorgen.

§ Welke PHP errors zijn er?

Een PHP error heeft verschillende levels: NOTICE, WARNING en ERROR. De notice is het minst erg en de error het ergst. Alle errors horen niet en dus zul je ze allemaal moeten oplossen.

§ Notice

PHP geeft een notice als het script gewoon normaal kan worden uitgevoerd, maar je misschien later problemen kan gaan krijgen. Je krijgt zo'n melding als je een deprecated functie gebruikt, zoals een eregi_* functie. PHP kan dan gewoon de eregi functie gebruiken, maar weet ook dat hij een paar versies later dat niet meer kan. Hij bereid je al vast voor.

Een ander voorbeeld is als er een bestand niet bestaat en jij wilt de content lezen. Hij geeft gewoon als content niks op en laat het script verder gaan. Alleen PHP weet dat als jij later wat met die content wilt gaan doen je problemen kan krijgen, hij meld dus alvast dat hier wellicht de oorzaak van het probleem een paar regels verder op is. In PHP is het vaak zo dat de ene error wordt gevolgt door een andere error

§ Warning

Nu beginnen we in het echte error gebied te komen. PHP heeft ontdekt dat er iets fout is gegaan, maar het is nog niet een fatale fout. PHP is namelijk zo vriendelijk om de code voor je aan te passen zodat hij wel goed gaat werken. Het parsen van het script loopt dus gewoon door en er lijkt vaak niks aan de hand te zijn. Totdat deze warning gevolgt wordt door een fout die PHP niet meer kan oplossen...

§ Error

En dat is de error. Deze is voor fatale fouten. PHP kan zo vriendelijk zijn als hij wil alleen oplossen dat kan hij niet. Hij stopt dus het script geeft je een error en je zult het zelf moeten oplossen.

§ Wat doe je met een PHP error?

Allereerst moet je hem opvangen. Dit doe je door een eigen PHP error handler aan te maken, dit is een functie.

Deze functie moet eerst kijken in welke fase je zit. In de dev/test fase zul je de error gewoon op het scherm gooien met eventuele andere handige dingen die het je makkelijk zullen maken. In de productie fase moet je gaan kijken of het script gewoon verder kan en je de bezoeker niks laat melden of dat je de bezoeker een vriendelijk error melding geeft. Ook zul je de error ergens weg moeten zetten, zodat jij wel weet dat er ergens een fout is opgetreden.

Hoe we deze functie maken en hoe we het ons zelf zo gemakkelijk mogelijk kunnen maken kun je later in een andere tutorial lezen.