Klasse ErrorException
De klasse ErrorException erft over van de basisklasse Exception en wordt gebruikt
om PHP-fouten om te zetten in uitzonderingen. Het voegt informatie over de ernst (severity) van de fout toe aan de standaardfunctionaliteit
van uitzonderingen. De klasse is vooral nuttig
bij gebruik met de functie set_error_handler.
Syntaxis
new ErrorException(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
string $filename = __FILE__,
int $lineno = __LINE__,
Throwable $previous = null
);
Voorbeeld
Laten we een ErrorException maken en verwerken:
<?php
try {
throw new ErrorException('Kritieke fout', 0, E_ERROR);
} catch (ErrorException $e) {
echo 'Fout: ' . $e->getMessage();
echo ' Ernst: ' . $e->getSeverity();
}
?>
Resultaat van het uitvoeren van de code:
'Fout: Kritieke fout Ernst: 1'
Voorbeeld
Laten we standaard PHP-fouten omzetten in uitzonderingen:
<?php
function errorHandler($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler('errorHandler');
try {
strpos(); // Verkeerd aantal argumenten
} catch (ErrorException $e) {
echo 'Uitzondering opgevangen: ' . $e->getMessage();
echo ' in ' . $e->getFile();
echo ' op regel ' . $e->getLine();
}
?>
Resultaat van het uitvoeren van de code (voorbeeld):
'Uitzondering opgevangen: strpos() verwacht minstens 2 parameters, 0 gegeven in /pad/naar/bestand.php op regel 10'
Voorbeeld
Laten we informatie over de ernst van de fout verkrijgen:
<?php
try {
throw new ErrorException('Waarschuwingsbericht', 0, E_WARNING);
} catch (ErrorException $e) {
echo 'Ernstniveau: ' . $e->getSeverity();
echo ' Is waarschuwing: ' . ($e->getSeverity() === E_WARNING ? 'ja' : 'nee');
}
?>
Resultaat van het uitvoeren van de code:
'Ernstniveau: 2 Is waarschuwing: ja'
Zie ook
-
klasse
Exception,
basisklasse voor alle uitzonderingen in PHP -
functie
set_error_handler,
die een aangepaste fouthandler instelt