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 (php)
PHP script in nieuw venster Selecteer het PHP script
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 (php)
PHP script in nieuw venster Selecteer het PHP script
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 (php)
PHP script in nieuw venster Selecteer het PHP script
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 (php)
PHP script in nieuw venster Selecteer het PHP script
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 (php)
PHP script in nieuw venster Selecteer het PHP script
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.

« Lees de omschrijving en reacties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.