Foutafhandeling in PHP (Error Handling)

  1. Inleiding
  2. Weergave en interpretatie van PHP fouten
  3. Basis foutafhandeling met die()
  4. Een flexibelere manier: trigger_error()
  5. Foutafhandeling en controle van variabelen
  6. Een eigen foutafhandeling functie met set_error_handler()
  7. Exceptions in PHP 5
  8. Gedetailleerde foutinformatie verkrijgen met exceptions
  9. Uitgebreide foutafhandeling met gebruik van foutcodes
  10. Uitbreiden van de standaard Exception klasse
  11. Slotwoord en referenties
  12. Reacties op deze tutorial

Weergave en interpretatie van PHP fouten

Voordat we daadwerkelijk kunnen beginnen met het toepassen van foutafhandeling is het van belang dat PHP ook daadwerkelijk fouten weergeeft. Om hiervoor te zorgen plaatsen we van nu af aan het volgende stukje code boven elk script:
Code
1
2
3
4
<?php
ini_set
('display_errors''On');
error_reporting(E_ALL);
?>

De eerste regel zorgt ervoor dat de 'display_errors' instelling in php.ini aangezet wordt waardoor PHP fouten zal weergeven. De tweede regel zorgt ervoor dat alle mogelijke fouten die optreden worden weergegeven. Later in deze tutorial bespreek ik de mogelijke instellingen die je kunt doen.

Mocht je ondanks deze twee regels nog steeds geen PHP foutmeldingen te zien krijgen, dan is de 'display_errors' instelling in je php.ini configuratiebestand waarschijnlijk uitgeschakeld. Als je zelf bij je php.ini kunt, kun je hem daar inschakelen en anders kun je dat doen met de volgende regel in een .htaccess bestandje:
Code
1
php_flag display_errors on


Verschillende foutmeldingen
Er zijn verschillende foutmeldingen die PHP terug kan geven, maar de standaard foutmeldingen hebben altijd dezelfde syntax:
Code
1
[soort fout]: [foutmelding] in [bestand] on line [regelnummer]

Mocht je nog niet bekend zijn met de foutmeldingen die PHP genereert, dan zal daar in de loop van deze tutorial zeker verandering in komen. Hetgeen voor nu belangrijk is, zijn de verschillende soorten fouten die op kunnen treden:
  • Parse error - Er zit een fout in de syntax van je php script
  • Notice - PHP heeft iets gevonden dat een fout zou kunnen zijn, maar niet per se is
  • Warning - Een belangrijke maar niet fatale fout. Het script wordt verder uitgevoerd
  • Fatal error - Een belangrijke en fatale fout. Het script wordt niet verder uitgevoerd

Om een en ander wat te verduidelijken volgt hier een scriptje dat een foutmelding zal geven:
Code
1
2
3
4
5
6
7
<?php
ini_set
('display_errors''On');
error_reporting(E_ALL);

echo 
'Foo'
echo 'Bar';
?>

De foutmelding die gegeven wordt is een 'parse error':
Code
1
Parse error: syntax error, unexpected T_ECHO, expecting ',' or ';' in C:\wamp\www\test.php on line 6

Aan deze foutmelding zie je dat er op regel 6 in het bestand test.php iets fout gegaan is. PHP meldt dat de echo die op die regel staat niet verwacht wordt. Dat komt overduidelijk doordat de echo op regel 5 niet met een ; afgesloten wordt.

Vorige Volgende