পরিচয়
চেষ্টার ব্লক - ক্যাচ যেকোনো পছন্দসই স্তর পর্যন্ত নেস্ট করা যেতে পারে। ব্যতিক্রমগুলি চেহারার বিপরীত ক্রমে পরিচালনা করা হবে অর্থাৎ অভ্যন্তরীণ ব্যতিক্রম প্রক্রিয়াকরণ প্রথমে করা হয়৷
উদাহরণ
নিম্নলিখিত উদাহরণে, অভ্যন্তরীণ চেষ্টা ব্লক চেক করে যে দুটি ভেরিয়েবলের যেকোন একটি অ-সংখ্যাসূচক হয় কিনা, এবং যদি তাই হয়, একটি ব্যবহারকারীর সংজ্ঞায়িত ব্যতিক্রম নিক্ষেপ করে। বাইরের চেষ্টা ব্লক থ্রো DivisionByZeroError যদি হর 0 হয়। অন্যথায় দুটি সংখ্যার বিভাজন প্রদর্শিত হয়।
উদাহরণ
<?php
class myException extends Exception{
function message(){
return "error : " . $this->getMessage() . " in line no " . $this->getLine();
}
}
$x=10;
$y=0;
try{
if (is_numeric($x)==FALSE || is_numeric($y)==FALSE)
throw new myException("Non numeric data");
}
catch (myException $m){
echo $m->message();
return;
}
if ($y==0)
throw new DivisionByZeroError ("Division by 0");
echo $x/$y;
}
catch (DivisionByZeroError $e){
echo $e->getMessage() ."in line no " . $e->getLine();
}
?> আউটপুট
নিম্নলিখিত আউটপুট প্রদর্শিত হয়
Division by 0 in line no 19
যে কোনো একটি ভেরিয়েবলকে অ-সংখ্যাসূচক মানে পরিবর্তন করুন
error : Non numeric data in line no 20
উভয় ভেরিয়েবল সংখ্যা হলে, তাদের বিভাজন মুদ্রিত হয়