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

Basis foutafhandeling met die()

Het eerste voorbeeld van foutafhandeling dat ik zal bespreken is het gebruik van de die() functie. Zoals de naam van deze functie al doet vermoeden, stopt deze functie de uitvoer van de rest van het script en toont een foutmelding op het scherm.

Laten we kijken naar een voorbeeld waarin we met de functie file_get_contents() proberen om de inhoud van een bestand op te halen. Omdat we de fout willen zien, zijn we natuurlijk geinteresseerd in wat er gebeurd als het bestand niet bestaat.
Code
1
2
3
4
5
6
<?php
ini_set
('display_errors''On');
error_reporting(E_ALL);

$content file_get_contents('bestand.txt');
?>

Als bestand.txt niet bestaat, zal de volgende foutmelding gegeven worden:
Code
1
Warning: file_get_contents(bestand.txt) [function.file-get-contents]: failed to open stream: No such file or directory in C:\wamp\www\test.php on line 5

Nu is dit natuurlijk niet echt een nette foutmelding die je aan je gebruikers zou willen tonen. Dat is als volgt op te lossen:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
ini_set
('display_errors''On');
error_reporting(E_ALL);

if(
file_exists('bestand.txt'))
{
    
$content file_get_contents('bestand.txt');
}
else
{
    die(
'FOUT: Het gekozen bestand bestaat niet.');
}
echo 
'Hello World!';
?>

We controleren nu eerst of het bestand wel bestaat. Als dat niet het geval is stoppen we met die() het script en geven we een foutmelding. De output die we nu op het scherm zien is:
Code
1
FOUT: Het gekozen bestand bestaat niet.

Dit voorbeeld laat zien hoe je op een hele eenvoudige manier, een zelf geschreven foutmelding kunt weergeven. Ook zien we dat de verdere uitvoer inderdaad gestopt wordt, de echo op regel 13 wordt niet uitgevoerd. Later in deze tutorial zullen we veel uitgebreidere voorbeelden zien.

Een ander voorbeeld waar de functie die() veel gebruikt wordt en waar de werking beter tot zijn recht komt, is bij het uitvoeren van een sql query. Als de query mislukt, zal PHP namelijk niet uit zichzelf een foutmelding geven, deze zul je zelf moeten opvragen met de functie mysql_error().
Code
1
2
3
4
5
6
7
<?php
ini_set
('display_errors''On');
error_reporting(E_ALL);

$sql "SELECT * FROM tabel";
$result mysql_query($sql) or die('FOUT: '.mysql_error());
?>

Als de query nu mislukt, en mysql_query() dus FALSE teruggeeft, zal 'or die()' ervoor zorgen dat de foutafhandeling in werking treedt. In dit geval zal de verdere uitvoer van het script gestopt worden en zal er een foutmelding gegeven worden.

Vorige Volgende