Razred ErrorException
Razred ErrorException podeduje od osnovnega razreda Exception in se uporablja
za pretvorbo napak PHP v izjeme. Standardni funkcionalnosti izjem doda informacijo
o resnosti napake (severity). Razred je še posebej uporaben
pri uporabi s funkcijo set_error_handler.
Sintaksa
new ErrorException(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
string $filename = __FILE__,
int $lineno = __LINE__,
Throwable $previous = null
);
Primer
Ustvarimo in obravnavajmo ErrorException:
<?php
try {
throw new ErrorException('Kritična napaka', 0, E_ERROR);
} catch (ErrorException $e) {
echo 'Napaka: ' . $e->getMessage();
echo ' Resnost: ' . $e->getSeverity();
}
?>
Rezultat izvajanja kode:
'Napaka: Kritična napaka Resnost: 1'
Primer
Pretvorimo standardne napake PHP v izjeme:
<?php
function errorHandler($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler('errorHandler');
try {
strpos(); // Napačno število argumentov
} catch (ErrorException $e) {
echo 'Ujeta izjema: ' . $e->getMessage();
echo ' v ' . $e->getFile();
echo ' v vrstici ' . $e->getLine();
}
?>
Rezultat izvajanja kode (primer):
'Ujeta izjema: strpos() expects at least 2 parameters, 0 given in /path/to/file.php on line 10'
Primer
Pridobimo informacijo o resnosti napake:
<?php
try {
throw new ErrorException('Opozorilno sporočilo', 0, E_WARNING);
} catch (ErrorException $e) {
echo 'Raven resnosti: ' . $e->getSeverity();
echo ' Je opozorilo: ' . ($e->getSeverity() === E_WARNING ? 'da' : 'ne');
}
?>
Rezultat izvajanja kode:
'Raven resnosti: 2 Je opozorilo: da'
Glejte tudi
-
razred
Exception,
osnovni razred za vse izjeme v PHP -
funkcijo
set_error_handler,
ki nastavi uporabniški upravljalnik napak