Klass ErrorException
Klassen ErrorException ärver från basklassen Exception och används
för att omvandla PHP-fel till undantag. Den lägger till information om felallvaret (severity)
till standardundantagets funktionalitet. Klassen är särskilt användbar
tillsammans med funktionen set_error_handler.
Syntax
new ErrorException(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
string $filename = __FILE__,
int $lineno = __LINE__,
Throwable $previous = null
);
Exempel
Låt oss skapa och hantera en ErrorException:
<?php
try {
throw new ErrorException('Kritiskt fel', 0, E_ERROR);
} catch (ErrorException $e) {
echo 'Fel: ' . $e->getMessage();
echo ' Allvar: ' . $e->getSeverity();
}
?>
Resultat av kodkörning:
'Fel: Kritiskt fel Allvar: 1'
Exempel
Låt oss omvandla standard PHP-fel till undantag:
<?php
function errorHandler($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler('errorHandler');
try {
strpos(); // Felaktigt antal argument
} catch (ErrorException $e) {
echo 'Fångat undantag: ' . $e->getMessage();
echo ' i ' . $e->getFile();
echo ' på rad ' . $e->getLine();
}
?>
Resultat av kodkörning (exempel):
'Fångat undantag: strpos() förväntar sig minst 2 parametrar, 0 angivna i /sökväg/till/fil.php på rad 10'
Exempel
Låt oss hämta information om felallvaret:
<?php
try {
throw new ErrorException('Varningsmeddelande', 0, E_WARNING);
} catch (ErrorException $e) {
echo 'Allvarsnivå: ' . $e->getSeverity();
echo ' Är varning: ' . ($e->getSeverity() === E_WARNING ? 'ja' : 'nej');
}
?>
Resultat av kodkörning:
'Allvarsnivå: 2 Är varning: ja'
Se även
-
klassen
Exception,
basklass för alla undantag i PHP -
funktionen
set_error_handler,
som sätter en anpassad felhanterare