PHP-এর আগের সংস্করণগুলিতে, আমরা শুধুমাত্র ব্যতিক্রমগুলি পরিচালনা করতে পারি৷ ত্রুটিগুলি পরিচালনা করা সম্ভব হয়নি। একটি মারাত্মক ত্রুটির ক্ষেত্রে, এটি সম্পূর্ণ অ্যাপ্লিকেশন বা অ্যাপ্লিকেশনের কিছু অংশ থামাতে ব্যবহৃত হয়। এই সমস্যাটি কাটিয়ে উঠতে, PHP 7 ব্যতিক্রম এবং ত্রুটি উভয়ই পরিচালনা করতে থ্রোয়েবল ইন্টারফেস যুক্ত করেছে৷
ব্যতিক্রম: যেখানেই একটি মারাত্মক এবং পুনরুদ্ধারযোগ্য ত্রুটি দেখা দেয়, PHP 7 সম্পূর্ণ অ্যাপ্লিকেশন বা স্ক্রিপ্ট এক্সিকিউশন বন্ধ করার পরিবর্তে একটি ব্যতিক্রম ছুঁড়ে দেয়৷
ত্রুটি: PHP 7 থ্রো টাইপ ইরর, অ্যারিথমেটিক ইরর, পার্সার এরর এবং অ্যাসারশন এরর, তবে সতর্কতা এবং নোটিশ ত্রুটি অপরিবর্তিত রয়েছে। ট্রাই/ক্যাচ ব্লক ব্যবহার করে, ত্রুটির উদাহরণ ধরা যায় এবং এখন, মারাত্মক ত্রুটিগুলি একটি ত্রুটির উদাহরণ ফেলতে পারে। PHP 7-এ, থ্রোয়েবল বাস্তবায়নের জন্য ব্যতিক্রম এবং ত্রুটি দুটি ব্যতিক্রম শাখাকে একত্রিত করতে একটি নিক্ষেপযোগ্য ইন্টারফেস যোগ করা হয়েছে।
উদাহরণ
<?php class XYZ { public function Hello() { echo "class XYZ\n"; } } try { $a = new XYZ(); $a->Hello(); $a = null; $a->Hello(); } catch (Error $e) { echo "Error occurred". PHP_EOL; echo $e->getMessage() . PHP_EOL ; echo "File: " . $e->getFile() . PHP_EOL; echo "Line: " . $e->getLine(). PHP_EOL; } echo "Continue the PHP code\n"; ?>
আউটপুট
উপরের প্রোগ্রামে, আমরা নিম্নলিখিত ত্রুটিটি পাব −
class XYZ Error occurred Call to a member function Hello() on null File: /home/cg/root/9008538/main.php Line: 11 Continue with the PHP code
দ্রষ্টব্য: উপরের উদাহরণে, আমরা একটি নাল বস্তুর উপর একটি পদ্ধতি কল. ক্যাচটি ব্যতিক্রম পরিচালনা করতে এবং তারপর পিএইচপি কোডটি চালিয়ে যেতে ব্যবহৃত হয়।
পাটিগণিত ত্রুটি
আমরা গাণিতিক ত্রুটির DivisionByZeroError ব্যবহার করব। কিন্তু তবুও, আমরা বিভাগ অপারেটরে সতর্কতা ত্রুটি পাব।
উদাহরণ:গাণিতিক ত্রুটি
<?php $x = 10; $y = 0; try { $z = intdiv($x , $y); } catch (DivisionByZeroError $e) { echo "Error has occured\n"; echo $e->getMessage() . PHP_EOL ; echo "File: " . $e->getFile() . PHP_EOL; echo "Line: " . $e->getLine(). PHP_EOL; } echo "$z \n"; echo " continues with the PHP code\n"; ?>
আউটপুট
উপরের প্রোগ্রামের আউটপুট সতর্কতা ত্রুটি -
সহ কার্যকর হবেDivision by zero File: /home/cg/root/9008538/main.php Line: 5 continues with the PHP code
দ্রষ্টব্য: উপরের প্রোগ্রামে, আমরা DivisionByZeroError withintheintdiv() ফাংশন ধরি এবং রিপোর্ট করি।