87 জন দেখেছেন
"পিএইচপি" বিভাগে করেছেন (6,242 পয়েন্ট)
PHP তে exception handling কি?

1 উত্তর

0 পছন্দ 0 জনের অপছন্দ
করেছেন (9 পয়েন্ট)

আরও অনেক অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর ন্যায় পিএইচপি ৫ ভার্ষন থেকে একটি নতুন পদ্ধতিতে এরর হ্যান্ডেলিং করা যায় যেটি এক্সেপশন নামে পরিচিত। অনেক বিল্টইন ক্লাস নিজে থকেই স্বয়ংকৃত ভাবে এরর সংঘটিত হলে এক্সেপশন থ্রো করে বা একটি স্পেশাল অবজেক্ট তৈরি করে যাতে কি কারণে এরর সংগঠিত হয়েছে তার বর্ননা এবং এরর লোকেশন থাকে। অবশ্য আপনারা চাইলে নিজেদের কাস্টম এরর ম্যাসেজ ও প্রদর্শন করতে পারেন। ডেভেলপমেন্ট স্টেজে এক্সেপশন হ্যান্ডেলিং এর জন্য try এবং catch ব্যবহার করা যায়। এর মধ্যে মূল কোড থাকবে try ব্লক এর মধ্যে এবং এরর হেন্ডেলিং কোড থাকবে catch ব্লক এর মধ্যে। যদি মুল কোড কোন এক্সেপশন থ্রো করে তাহলে পিএইচপি ইঞ্জিন try ব্লক এর এক্সিকিউশন বন্ধ করে দিয়ে শুধুমাত্র catch ব্লক এক্সেকিউট করে। ফরমেট টি হবে নিম্নরূপ

পিএইচপি কোড:

try {
    // main code goes here
}
catch (Exception $e) {
    echo $e->getMessage( );
}

এই পদ্ধতিতে রিকভারেবল এরর ম্যাসেজ এর তুলনায় অনেক বোধগম্য এরর রিপোর্ট তৈরি করা যায়। আবার এরর ডিসপ্লে অফ করা থাকলেও catch ব্লক এর মাধ্যমে ইউজারকে অন্য একটি এরর পেজে রিডাইরেক্ট করা যায়। এক্সেপশন থ্রো করবে এমন একটি ফাংশন তৈরি করি

পিএইচপি কোড:

<?php
//A simple function which throw an execption.
function myfunc($first_number, $second_number)
    {
   
$result = $first_number + $second_number;
   
// Condition goes here.
   
if($result > 70){
        echo
"Congrats! result is greater then 70";
    }
   
// Thworing an execption when condition is not true.
   
else{
        throw new
Exception("Error result is lower then 70");
    }
    return
true;
}

// Executing function in a try block.
try{
   
myfunc(30, 20);
}

// Catching Execption.
catch(Exception $e)
  {
  echo
'Message: ' .$e->getMessage();
  }

?>

আমাদের উপরের ফাংশনটিতে দুটি প্যারামিটার এর মাধ্যমে $first_number এবং $second_number ভেরিয়েবলগুলতে ভ্যালু রিসিভ করবে। যদি প্যারামিটারে রিসিভকৃত ভ্যালু গুলোর যোগফল ৭০ এর চেয়ে বেশি হয় তাহলে কন্ডিশন ঠিক থাকবে। আর তাদের যোগফল যদি ৭০ এর চেয়ে কম হয় তাহলে একটি এক্সেপশন থ্রো করবে। যেটি if else দ্বারা বর্ননা করা হয়েছে। এরপর আমরা যখন ফাংশনটিকে কল করেছি তখন তাকে try ব্লক এর মধ্যে রেখেছি। যদি ফাংশনটির কন্ডিশন ট্রু না হয় তাহলে catch ব্লক এক্সিকিউট হয়ে এক্সেপশনটি রিসিভ করে প্রদর্শন করবে। এইভাবে যখন কোন এক্সেপশন থ্রো করা হবে তখন অন্তত পক্ষে একটি catch ব্লক ব্যাবহার করা বাধ্যতামূলক। catch ব্লকে আমরা এরর ম্যাসেজ পেতে getMessage() ফাংশনটি ব্যাবহার করেছি। এটি এক্সেপশন ম্যাসেজ টি রিটার্ন করবে।

টি উত্তর
২১ জানুয়ারি ২০১৯ "ক্যারিয়ার" বিভাগে উত্তর দিয়েছেন Ariful (৬৩৭৩ পয়েন্ট )
টি উত্তর

সম্পর্কিত প্রশ্নগুচ্ছ

1 উত্তর
27 মার্চ 2015 "পিএইচপি" বিভাগে জিজ্ঞাসা করেছেন আরিফুল (6,242 পয়েন্ট)
1 উত্তর
1 উত্তর
1 উত্তর
1 উত্তর
27 মার্চ 2015 "পিএইচপি" বিভাগে জিজ্ঞাসা করেছেন আরিফুল (6,242 পয়েন্ট)

288,089 টি প্রশ্ন

373,379 টি উত্তর

112,900 টি মন্তব্য

156,760 জন নিবন্ধিত সদস্য



বিস্ময় বাংলা ভাষায় সমস্যা সমাধানের একটি নির্ভরযোগ্য মাধ্যম। এখানে আপনি আপনার প্রশ্ন করার পাশাপাশি অন্যদের প্রশ্নে উত্তর প্রদান করে অবদান রাখতে পারেন অনলাইনে বিভিন্ন সমস্যার সমাধানের জন্য সবথেকে বড় এবং উন্মুক্ত তথ্যভাণ্ডার গড়ে তোলার কাজে।
* বিস্ময়ে প্রকাশিত সকল প্রশ্ন বা উত্তরের দায়ভার একান্তই ব্যবহারকারীর নিজের, এক্ষেত্রে কোন প্রশ্নোত্তর কোনভাবেই বিস্ময় এর মতামত নয়।
...