ErrorException synpy
ErrorException synpy Exception synpynyň esasyndan miras alýar we PHP ýalňyşlaryny
kesgitli ýagdaýlara öwürmek üçin ulanylýar. Ol, adaty kesgitli ýagdaýlar funksionallygyna
ýalňyşyň aýratynlyk derejesi (severity) baradaky maglumat goşýar. Synp, esasanam
set_error_handler funksiýasy bilen birikdilende peýdalydyr.
Sintaksis
new ErrorException(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
string $filename = __FILE__,
int $lineno = __LINE__,
Throwable $previous = null
);
Mysal
ErrorException döredeliň we işleliň:
<?php
try {
throw new ErrorException('Critical error', 0, E_ERROR);
} catch (ErrorException $e) {
echo 'Error: ' . $e->getMessage();
echo ' Severity: ' . $e->getSeverity();
}
?>
Kodyň ýerine ýetiriliş netijesi:
'Error: Critical error Severity: 1'
Mysal
PHP-niň adaty ýalňyşlaryny kesgitli ýagdaýlara öwüreliň:
<?php
function errorHandler($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler('errorHandler');
try {
strpos(); // Argumentleriň sany nädogry
} catch (ErrorException $e) {
echo 'Caught exception: ' . $e->getMessage();
echo ' in ' . $e->getFile();
echo ' on line ' . $e->getLine();
}
?>
Kodyň ýerine ýetiriliş netijesi (mysal):
'Caught exception: strpos() expects at least 2 parameters, 0 given in /path/to/file.php on line 10'
Mysal
Ýalňyşyň aýratynlyk derejesi barada maglumat alyň:
<?php
try {
throw new ErrorException('Warning message', 0, E_WARNING);
} catch (ErrorException $e) {
echo 'Severity level: ' . $e->getSeverity();
echo ' Is warning: ' . ($e->getSeverity() === E_WARNING ? 'yes' : 'no');
}
?>
Kodyň ýerine ýetiriliş netijesi:
'Severity level: 2 Is warning: yes'
Şeýle-de görüň
-
synp
Exception,
PHP-de ähli kesgitli ýagdaýlar üçin esasy synp -
funksiýa
set_error_handler,
ulanyjy tarapyndan kesgitlenen ýalňyş işleýji düzgünleýär