পরিচয়
অবশেষে এর একটি অদ্ভুত আচরণ আছে ব্লক করার চেষ্টা করলে ব্লক বা ক্যাচ ব্লক (বা উভয়) একটি রিটার্ন থাকে বিবৃতি সাধারণত রিটার্ন স্টেটমেন্টের কারণে প্রোগ্রামের নিয়ন্ত্রণ কলিং পজিশনে ফিরে যায়। যাইহোক, রিটার্ন সহ try/catch ব্লক সহ একটি ফাংশনের ক্ষেত্রে, অবশেষে ব্লকের স্টেটমেন্টগুলি রিটার্ন করার আগে প্রথমে কার্যকর করা হয়।
উদাহরণ
নিম্নলিখিত উদাহরণে, div() ফাংশনের একটি চেষ্টা আছে - ধরা - অবশেষে নির্মাণ। ব্যতিক্রম ছাড়া ব্লক চেষ্টা করুন বিভাজনের ফলাফল প্রদান করে। ব্যতিক্রমের ক্ষেত্রে, ক্যাচ ব্লক ত্রুটি বার্তা প্রদান করে। যাইহোক, উভয় ক্ষেত্রেই অবশেষে ব্লকের স্টেটমেন্ট প্রথমে কার্যকর করা হয়।
উদাহরণ
<?php function div($x, $y){ try { if ($y==0) throw new Exception("Division by 0"); else $res=$x/$y;; return $res; } catch (Exception $e){ return $e->getMessage(); } finally{ echo "This block is always executed\n"; } } $x=10; $y=0; echo div($x,$y); ?>
আউটপুট
নিম্নলিখিত আউটপুট প্রদর্শিত হয়
This block is always executed Division by 0
$y এর মান 5 এ পরিবর্তন করুন। নিম্নলিখিত আউটপুট প্রদর্শিত হয়
This block is always executed 2