ক্লাস 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,
যা একটি ইউজার-ডিফাইন্ড ত্রুটি হ্যান্ডলার সেট করে