परिचय
कोड आखिरकार . में ब्लॉक हमेशा निष्पादित हो जाएगा कि क्या ry ब्लॉक में कोई अपवाद है या नहीं। यह ब्लॉक या तो कैच ब्लॉक के बाद या कैच ब्लॉक के बजाय दिखाई देता है।
पकड़ें और अंत में ब्लॉक करें
निम्नलिखित उदाहरण में, कैच और अंत में ब्लॉक दोनों दिए गए हैं। यदि प्रयास ब्लॉक में निष्पादन होता है, तो दोनों में कोड निष्पादित होता है। यदि कोई अपवाद नहीं है, तो केवल अंत में ब्लॉक निष्पादित किया जाता है।
उदाहरण
<?php
function div($x, $y) {
if (!$y) {
throw new Exception('Division by zero.');
}
return $x/$y;
}
try {
echo div(10,0) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
finally{
echo "This block is always executed\n";
}
// Continue execution
echo "Execution continues\n";
?> आउटपुट
निम्न आउटपुट प्रदर्शित होता है
Caught exception: Division by zero. This block is always executed Execution continues
ट्राई ब्लॉक में स्टेटमेंट बदलें ताकि कोई अपवाद न हो
उदाहरण
<?php
function div($x, $y) {
if (!$y) {
throw new Exception('Division by zero.');
}
return $x/$y;
}
try {
echo div(10,5) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
finally{
echo "This block is always executed\n";
}
// Continue execution
echo "Execution continues\n";
?> आउटपुट
निम्न आउटपुट प्रदर्शित होता है
2 This block is always executed Execution continues
आखिरकार केवल ब्लॉक करें
निम्नलिखित उदाहरण में दो प्रयास ब्लॉक हैं। उनमें से एक ने केवल अंत में ब्लॉक किया है। इसका ट्राई ब्लॉक डिव फंक्शन को कॉल करता है जो एक अपवाद फेंकता है
उदाहरण
<?php
function div($x, $y){
try{
if (!$y) {
throw new Exception('Division by zero.');
}
return $x/$y;
}
catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
try {
echo div(10,0) . "\n";
}
finally{
echo "This block is always executed\n";
}
// Continue execution
echo "Execution continues\n";
?> आउटपुट
निम्न आउटपुट प्रदर्शित होता है
Caught exception: Division by zero. This block is always executed Execution continues