কম্পিউটার টিউটোরিয়াল

PHP এক্সেপশন এক্সটেন্ড করা


ভূমিকা

Exception ক্লাস Throwable ইন্টারফেস ইমপ্লিমেন্ট করে এবং সকল Exception ক্লাসের বেস ক্লাস, প্রিডিফাইনড এক্সেপশনসহ ইউজার-ডিফাইনড এক্সেপশন। Exception ক্লাস Throwable ইন্টারফেস থেকে কিছু final (নন-ওভাররাইডেবল) মেথড ডিফাইন করে সেগুলো ইমপ্লিমেন্ট করতে, এবং __toString() মেথড যা ওভাররাইড করা যেতে পারে Exception অবজেক্টের স্ট্রিং রিপ্রেজেন্টেশন রিটার্ন করার জন্য।

final public function getMessage()এক্সেপশনের মেসেজ
final public function getCode()এক্সেপশনের কোড
final public function getFile()সোর্স ফাইলনেম
final public function getLine()সোর্স লাইন
final public function getTrace()ব্যাকট্রেস() এর একটি অ্যারে
final public function getPrevious()পূর্ববর্তী এক্সেপশন
final public function getTraceAsString()ফরম্যাটেড স্ট্রিং অফ ট্রেস
public function __toString()ডিসপ্লে জন্য ফরম্যাটেড স্ট্রিং

যদি ইউজার-ডিফাইনড এক্সেপশন ক্লাস কনস্ট্রাক্টর রিডিফাইন করে, তবে সেটি parent::__construct() কল করা উচিত যাতে সকল উপলব্ধ ডেটা যথাযথভাবে অ্যাসাইন হয়েছে নিশ্চিত করা যায়।

উদাহরণ

নিচের স্ক্রিপ্ট একটি কাস্টম এক্সেপশন ক্লাস myException ডিফাইন করে। এই টাইপের এক্সেপশন থ্রো করা হয় যদি $num-এর মান 0-এর চেয়ে কম বা 100-এর চেয়ে বড় হয়। Exception ক্লাসের getMessage() মেথড এরর মেসেজ রিটার্ন করে এবং getLine() মেথড সেই লাইন নম্বর রিটার্ন করে যেখানে এক্সেপশন দেখানো হয়েছে।

উদাহরণ

<?php
class myException extends Exception{
    function message(){
        return "error : " . $this->getMessage() . " in line no " . $this->getLine();
    }
}
$num=125;
try{
    if ($num>100 || $num<0)
        throw new myException("$num is invalid number");
    else
        echo "$num is a valid number";
}
catch (myException $m){
    echo $m->message();
}
?>

আউটপুট

উপরোক্ত কোড $num=125 এবং $num=90 দিয়ে চালিয়ে এরর মেসেজ এবং বৈধ নম্বরের মেসেজ পেতে:

error : 125 is invalid number in line no 10

  1. PHP min() ফাংশন

  2. PHP max() ফাংশন

  3. PHP-এ set_exception_handler() ফাংশন

  4. PHP-এ restore_exception_handler() ফাংশন