ভূমিকা
PHP-এর Exception ক্লাস Throwable ইন্টারফেস ইমপ্লিমেন্ট করে। ErrorException ক্লাস Exception ক্লাস এক্সটেন্ড করে। ErrorException স্পষ্টভাবে থ্রো করা হয় যখন আপনি সেই এররগুলো ক্যাচ ও হ্যান্ডেল করতে চান যেগুলো অন্যথায় উপেক্ষা হতো, যেমন Notices বা Warnings।
PHP কোরে নিচের প্রিডিফাইনড এরর কনস্ট্যান্টগুলো রয়েছে—
| Value | Constant | Description |
|---|---|---|
| 1 | E_ERROR | ফেটাল রান-টাইম এরর। |
| 2 | E_WARNING | রান-টাইম ওয়ার্নিং (নন-ফেটাল এরর)। |
| 4 | E_PARSE | কম্পাইল-টাইম পার্স এরর। |
| 8 | E_NOTICE | রান-টাইম নোটিশ। |
| 16 | E_CORE_ERROR | PHP-এর ইনিশিয়াল স্টার্টআপে হয়endo ফেটাল এরর। |
| 32 | E_CORE_WARNING | PHP-এর ইনিশিয়াল স্টার্টআপে হয়endo ওয়ার্নিং (নন-ফেটাল)। |
| 64 | E_COMPILE_ERROR | ফেটাল কম্পাইল-টাইম এরর। |
| 128 | E_COMPILE_WARNING | কম্পাইল-টাইম ওয়ার্নিং (নন-ফেটাল)। |
| 256 | E_USER_ERROR | ইউজার-জেনারেটেড এরর মেসেজ। |
| 512 | E_USER_WARNING | ইউজার-জেনারেটেড ওয়ার্নিং মেসেজ। |
| 1024 | E_USER_NOTICE | ইউজার-জেনারেটেড নোটিশ মেসেজ। |
| 2048 | E_STRICT | ইনেবল থাকলে PHP কোডে পরিবর্তনের পরামর্শ দেয় ইন্টারঅপারেবিলিটি এবং ফরওয়ার্ড কম্প্যাটিবিলিটির জন্য। |
| 4096 | E_RECOVERABLE_ERROR | ক্যাচেবল ফেটাল এরর। |
| 8192 | E_DEPRECATED | রান-টাইম নোটিশ। |
| 16384 | E_USER_DEPRECATED | ইউজার-জেনারেটেড ওয়ার্নিং মেসেজ। |
| 32767 | E_ALL | সব এরর এবং ওয়ার্নিং, E_STRICT সহ। |
Exception ক্লাস থেকে ইনহেরিট করা প্রপার্টি ও মেথড ছাড়াও, ErrorException ক্লাস একটি প্রপার্টি এবং একটি মেথড পরিচয় করায়—
protected int severity ; final public getSeverity ( void ) : int
এক্সসেপশনের সেভেরিটি উপরের টেবিলের এরর টাইপের সাথে জড়িত ইন্টিজার নম্বর দিয়ে রিপ্রেজেন্ট করা হয়।
ErrorException উদাহরণ
নিচের স্ক্রিপ্টে, একটি ইউজার-ডিফাইনড ফাংশন errhandler set_error_handler() ফাংশন দিয়ে এরর হ্যান্ডলার হিসেবে সেট করা হয়েছে। ফাইল না পাওয়া যাওয়ার ফেটাল এরর এনকাউন্টার করলে এটি ErrorException থ্রো করে।
উদাহরণ
<?php function errhandler($severity, $message, $file, $line) { if (!(error_reporting() & $severity)) { echo "no error"; return; } throw new ErrorException("Fatal Error: No such file or directory", 0, E_ERROR); } set_error_handler("errhandler"); /* Trigger exception */ try{ $data = file_get_contents("nofile.php"); echo $data; } catch (ErrorException $e){ echo $e->getMessage(); } ?>উপরের উদাহরণ নিচের আউটপুট দেখাবে—
আউটপুট
Fatal Error: No such file or directory