Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> PHP

एकाधिक कैच ब्लॉक के साथ PHP अपवाद हैंडलिंग

परिचय

PHP विभिन्न अपवाद मामलों को संभालने के लिए कोशिश ब्लॉक के बाद कैच ब्लॉक की एक श्रृंखला की अनुमति देता है। पूर्वनिर्धारित अपवादों और त्रुटियों के साथ-साथ उपयोगकर्ता परिभाषित अपवादों को संभालने के लिए विभिन्न कैच ब्लॉकों को नियोजित किया जा सकता है।

उदाहरण

निम्नलिखित उदाहरण DivisioByZeroError, TypeError, ArgumentCountError और InvalidArgumentException स्थितियों को संसाधित करने के लिए कैच ब्लॉक का उपयोग करता है। सामान्य अपवाद को संभालने के लिए एक कैच ब्लॉक भी है।

उदाहरण

<?php
declare(strict_types=1);
function divide(int $a, int $b) : int {
   return $a / $b;
}
$a=10;
$b=0;
try{
   if (!$b) {
      throw new DivisionByZeroError('Division by zero.');}
      if (is_int($a)==FALSE || is_int($b)==FALSE)
         throw new InvalidArgumentException("Invalid type of arguments");
         $result=divide($a, $b);
         echo $result;
      }
      catch (TypeError $x)//if argument types not matching{
         echo $x->getMessage();
   }
   catch (DivisionByZeroError $y) //if denominator is 0{
      echo $y->getMessage();
}
catch (ArgumentCountError $z) //if no.of arguments not equal to 2{
   echo $z->getMessage();
}
catch (InvalidArgumentException $i) //if argument types not matching{
   echo $i->getMessage();
}
catch (Exception $ex) // any uncaught exception{
   echo $ex->getMessage();
}
?>

आउटपुट

आरंभ करने के लिए, चूंकि हर 0 है, 0 से विभाजित करें त्रुटि प्रदर्शित की जाएगी

Division by 0

$b=3 सेट करें जो TypeError का कारण बनेगा क्योंकि डिवाइड फ़ंक्शन से पूर्णांक वापस आने की उम्मीद है लेकिन डिवीज़न का परिणाम फ्लोट में होता है

Return value of divide() must be of the type integer, float returned

यदि $res=divid($a); को बदलकर फ़ंक्शन को विभाजित करने के लिए केवल एक चर पारित किया जाता है; इसका परिणाम ArgumentCountError

. होगा
Too few arguments to function divide(), 1 passed in C:\xampp\php\test1.php on line 13 and exactly 2 expected

यदि तर्कों में से एक पूर्णांक नहीं है, तो यह InvalidArgumentException का मामला है

Invalid type of arguments

  1. जावा में ट्राई कैच के साथ एक्सेप्शन हैंडलिंग

    यहां तक ​​कि सबसे अच्छे प्रोग्रामर भी अपने कोड में गलतियां करते हैं। टाइपो, अनपेक्षित उपयोगकर्ता इनपुट, या कई अन्य कारणों से त्रुटि हो सकती है जिन्हें ट्रैक करना मुश्किल है। यही वह जगह है जहां अपवाद हैंडलिंग आती है। अच्छे कोड में अपवाद हैंडलर शामिल होते हैं, जो पूर्वनिर्धारित तरीके से कोड में त्र

  1. C++ में एक्सेप्शन हैंडलिंग बेसिक्स

    सी ++ में, अपवाद हैंडलिंग रनटाइम त्रुटियों को संभालने की एक प्रक्रिया है। अपवाद एक घटना है जिसे सी ++ में रनटाइम पर फेंक दिया जाता है। सभी अपवाद std::Exception वर्ग से लिए गए हैं। यह एक रनटाइम त्रुटि है जिसे संभाला जा सकता है। अगर हम अपवाद को हैंडल नहीं करते हैं तो यह अपवाद संदेश को प्रिंट करता है औ

  1. पाइथन 'साथ' कथन का उपयोग करते समय अपवाद कैसे पकड़ें?

    इस प्रकार अपवाद को पकड़ने के लिए कोड को फिर से लिखा जा सकता है: try:      with open("myFile.txt") as f:           print(f.readlines()) except:     print('No such file or directory') हमें निम्न आउटपुट मिलता है C:/Users/TutorialsPoin