Klase ErrorException
Klase ErrorException mantota no bāzes klases Exception un tiek izmantota
PHP kļūdu pārvēršanai par izņēmumiem. Tā pievieno standarta izņēmumu funkcionalitātei
informāciju par kļūdas nopietnību (severity). Klase ir īpaši noderīga
līdz ar funkcijas set_error_handler lietošanu.
Sintakse
new ErrorException(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
string $filename = __FILE__,
int $lineno = __LINE__,
Throwable $previous = null
);
Piemērs
Izveidosim un apstrādāsim ErrorException:
<?php
try {
throw new ErrorException('Kritiska kļūda', 0, E_ERROR);
} catch (ErrorException $e) {
echo 'Kļūda: ' . $e->getMessage();
echo ' Nopietnība: ' . $e->getSeverity();
}
?>
Koda izpildes rezultāts:
'Kļūda: Kritiska kļūda Nopietnība: 1'
Piemērs
Pārveidosim standarta PHP kļūdas par izņēmumiem:
<?php
function errorHandler($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler('errorHandler');
try {
strpos(); // Nepareizs argumentu daudzums
} catch (ErrorException $e) {
echo 'Noķerts izņēmums: ' . $e->getMessage();
echo ' failā ' . $e->getFile();
echo ' rindā ' . $e->getLine();
}
?>
Koda izpildes rezultāts (piemērs):
'Noķerts izņēmums: strpos() sagaida vismaz 2 parametrus, 0 doti failā /path/to/file.php rindā 10'
Piemērs
Iegūsim informāciju par kļūdas nopietnību:
<?php
try {
throw new ErrorException('Brīdinājuma ziņojums', 0, E_WARNING);
} catch (ErrorException $e) {
echo 'Nopietnības līmenis: ' . $e->getSeverity();
echo ' Vai ir brīdinājums: ' . ($e->getSeverity() === E_WARNING ? 'jā' : 'nē');
}
?>
Koda izpildes rezultāts:
'Nopietnības līmenis: 2 Vai ir brīdinājums: jā'
Skatiet arī
-
klasi
Exception,
bāzes klase visiem izņēmumiem PHP -
funkciju
set_error_handler,
kas uzstāda lietotāja definētu kļūdu apstrādātāju