ErrorException වර්ගය
ErrorException වර්ගය මූලික Exception වර්ගයෙන් උරුම වී ඇති අතර
PHP දෝෂ ව්යතිරේක බවට පරිවර්තනය කිරීමට භාවිතා කරයි. එය සම්මත ව්යතිරේක ක්රියාකාරීත්වයට
දෝෂයේ බරපතලකම (severity) පිළිබඳ තොරතුරු එකතු කරයි. මෙම වර්ගය විශේෂයෙන් ප්රයෝජනවත් වන්නේ
set_error_handler ශ්රිතය සමඟ භාවිතා කරන විටය.
වාක්ය රචනා ක්රමය
new ErrorException(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
string $filename = __FILE__,
int $lineno = __LINE__,
Throwable $previous = null
);
උදාහරණය
ErrorException නිර්මාණය කර සැකසමු:
<?php
try {
throw new ErrorException('Critical error', 0, E_ERROR);
} catch (ErrorException $e) {
echo 'Error: ' . $e->getMessage();
echo ' Severity: ' . $e->getSeverity();
}
?>
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'Error: Critical error Severity: 1'
උදාහරණය
සම්මත PHP දෝෂ ව්යතිරේක බවට පරිවර්තනය කරමු:
<?php
function errorHandler($severity, $message, $file, $line) {
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler('errorHandler');
try {
strpos(); // තර්ක ප්රමාණය වැරදියි
} catch (ErrorException $e) {
echo 'Caught exception: ' . $e->getMessage();
echo ' in ' . $e->getFile();
echo ' on line ' . $e->getLine();
}
?>
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය (උදාහරණය):
'Caught exception: strpos() expects at least 2 parameters, 0 given in /path/to/file.php on line 10'
උදාහරණය
දෝෂයේ බරපතලකම පිළිබඳ තොරතුරු ලබා ගනිමු:
<?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');
}
?>
කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය:
'Severity level: 2 Is warning: yes'
මෙයත් බලන්න
-
වර්ගය
Exception,
PHP හි සියලුම ව්යතිරේක සඳහා මූලික වර්ගය -
ශ්රිතය
set_error_handler,
පරිශීලක අභිමත දෝෂ සැකසුම්කරුවෙක් ස්ථාපනය කරයි