কম্পিউটার

পিএইচপি নিক্ষেপ ব্যতিক্রম


পরিচয়

নিক্ষেপযোগ্য ইন্টারফেস ত্রুটি এবং ব্যতিক্রম শ্রেণী দ্বারা প্রয়োগ করা হয়। সমস্ত পূর্বনির্ধারিত ত্রুটি ক্লাস ত্রুটি ক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হয়। সংশ্লিষ্ট ত্রুটি ক্লাসের উদাহরণ ট্রাই ব্লকের ভিতরে নিক্ষেপ করা হয় এবং উপযুক্ত ক্যাচ ব্লকের মধ্যে প্রক্রিয়া করা হয়।

নিক্ষেপের ত্রুটি

ক্রমানুসারে সংজ্ঞায়িত শেষ ক্যাচ ব্লকের পরে স্বাভাবিক সম্পাদন (যখন কোনো ব্যতিক্রম চেষ্টা ব্লকের মধ্যে নিক্ষেপ করা হয় না) চলতে থাকবে।

উদাহরণ

<?php
function div($x, $y) {
   if (!$y) {
      throw new Exception('Division by zero.');
   }
return $x/$y;
}
try {
   echo div(10,5) . "\n";
   echo div(10,0) . "\n";
} catch (Exception $e) {
   echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo "Execution continues\n";
?>

আউটপুট

নিম্নলিখিত আউটপুট প্রদর্শিত হয়

2
Caught exception: Division by zero.
Execution continues

নিম্নলিখিত উদাহরণে, TypeError একটি ফাংশন চালানোর সময় নিক্ষেপ করা হয় কারণ এতে উপযুক্ত আর্গুমেন্ট পাস করা হয় না। সংশ্লিষ্ট ত্রুটি বার্তা প্রদর্শিত হয়

উদাহরণ

<?php
function add(int $num1, int $num2){
   return $num1 + $num2;
}
try {
   $value = add(1, 'one');
} catch (TypeError $e) {
   echo $e->getMessage(). "\n";
}
?>

আউটপুট

নিম্নলিখিত আউটপুট প্রদর্শিত হয়

Argument 2 passed to add() must be of the type integer, string given

SPL ব্যতিক্রম

স্ট্যান্ডার্ড PHP লাইব্রেরিতে পূর্বনির্ধারিত ব্যতিক্রম রয়েছে

LogicException ব্যতিক্রম যা প্রোগ্রাম লজিকে ত্রুটি উপস্থাপন করে।
BadFunctionCallException একটি কলব্যাক যদি একটি অনির্ধারিত ফাংশনকে নির্দেশ করে বা কিছু আর্গুমেন্ট অনুপস্থিত থাকে তাহলে ব্যতিক্রম নিক্ষেপ করা হয়৷
BadMethodCallException যদি একটি কলব্যাক একটি অনির্ধারিত পদ্ধতিকে নির্দেশ করে বা কিছু আর্গুমেন্ট অনুপস্থিত থাকে তাহলে ব্যতিক্রম নিক্ষেপ করা হয়৷
ডোমেন ব্যতিক্রম একটি মান একটি সংজ্ঞায়িত বৈধ ডেটা ডোমেনে না মানলে ব্যতিক্রম নিক্ষেপ করা হয়৷
InvalidArgumentException একটি যুক্তি প্রত্যাশিত ধরনের না হলে ব্যতিক্রম নিক্ষেপ করা হয়।
দৈর্ঘ্য ব্যতিক্রম একটি দৈর্ঘ্য অবৈধ হলে ব্যতিক্রম নিক্ষেপ করা হয়।
OutOfRangeException একটি অবৈধ সূচক অনুরোধ করা হলে ব্যতিক্রম নিক্ষেপ করা হয়।
RuntimeException একটি ত্রুটি যা শুধুমাত্র রানটাইমে পাওয়া যায় তা হলে ব্যতিক্রম নিক্ষেপ করা হয়।
OutOfBoundsException একটি মান বৈধ কী না হলে ব্যতিক্রম নিক্ষেপ করা হয়।
ওভারফ্লো ব্যতিক্রম একটি সম্পূর্ণ পাত্রে একটি উপাদান যোগ করার সময় ব্যতিক্রম নিক্ষেপ করা হয়।
রেঞ্জ ব্যতিক্রম প্রোগ্রাম এক্সিকিউশনের সময় পরিসরের ত্রুটিগুলি নির্দেশ করতে ব্যতিক্রম নিক্ষেপ করা হয়েছে। আন্ডার/ওভারফ্লো ছাড়া অন্য একটি গাণিতিক ত্রুটি।
UnderflowException একটি খালি কন্টেইনারে একটি অবৈধ ক্রিয়াকলাপ সম্পাদন করার সময় ব্যতিক্রম নিক্ষেপ করা হয়, যেমন একটি উপাদান সরানো৷
UnexpectedValueException একটি মান যদি মানের সেটের সাথে মেলে না তাহলে ব্যতিক্রম নিক্ষেপ করা হয়।

নিম্নলিখিত উদাহরণ দেখায় OutOfBoundsException PHP অ্যারেতে একটি কী পাওয়া না গেলে নিক্ষেপ করা হয়

উদাহরণ

<?php
$arr=array("one"=>1, "two"=>2,"three"=>3,"four"=>4);
$key="ten";
try{
   if (array_key_exists($key, $arr)==FALSE){
      throw new OutOfBoundsException("key not found");}
   else {
      echo $arr[$key];}
   }
   catch (OutOfBoundsException $e){
      echo $e->getMessage(). "\n";
}
?>

আউটপুট

নিম্নলিখিত আউটপুট প্রদর্শিত হয়

key not found

  1. কিভাবে ব্যতিক্রমগুলি C++ এ কাজ করে

  2. Pry এ ব্যতিক্রমের সাথে কাজ করা

  3. রুবিতে কাস্টম ব্যতিক্রম

  4. রুবিতে ব্যতিক্রম