परिचय
आखिरकार . का एक अजीबोगरीब व्यवहार है ब्लॉक करें जब या तो ब्लॉक करें या कैच ब्लॉक करें (या दोनों) में रिटर्न . हो बयान। आम तौर पर रिटर्न स्टेटमेंट प्रोग्राम के नियंत्रण को कॉलिंग स्थिति पर वापस जाने का कारण बनता है। हालांकि, रिटर्न के साथ 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