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

PHP 7 में अपवाद और त्रुटि


PHP के पुराने संस्करणों में, हम केवल अपवादों को ही संभाल सकते थे। त्रुटियों को संभालना संभव नहीं था। एक घातक त्रुटि के मामले में, यह पूर्ण आवेदन या आवेदन के कुछ हिस्से को रोक देता था। इस समस्या को दूर करने के लिए, PHP 7 ने अपवाद और त्रुटियों दोनों को संभालने के लिए थ्रोएबल इंटरफ़ेस जोड़ा।

>अपवाद: जब भी कोई घातक और पुनर्प्राप्ति योग्य त्रुटि होती है, PHP 7 संपूर्ण एप्लिकेशन या स्क्रिप्ट निष्पादन को रोकने के बजाय एक अपवाद फेंकता है।

त्रुटि: PHP 7 फेंकता है टाइप एरर, अंकगणित त्रुटि, पार्सर त्रुटि, और अभिकथन त्रुटि, लेकिन चेतावनियां और नोटिस त्रुटियां अपरिवर्तित रहती हैं। कोशिश/पकड़ ब्लॉक का उपयोग करके, त्रुटि उदाहरण पकड़ा जा सकता है, और अब, FatalErrors एक त्रुटि उदाहरण फेंक सकता है। PHP 7 में, दो अपवाद शाखाओं, एक्सेप्शन और एरर को, थ्रोएबल को लागू करने के लिए, एक थ्रोएबल इंटरफ़ेस जोड़ा जाता है।

उदाहरण

<?php
   class XYZ {
      public function Hello() {
         echo "class XYZ\n";
      }
   }
   try {
      $a = new XYZ();
      $a->Hello();
      $a = null;
      $a->Hello();
   }
   catch (Error $e) {
      echo "Error occurred". PHP_EOL;
      echo $e->getMessage() . PHP_EOL ;
      echo "File: " . $e->getFile() . PHP_EOL;
      echo "Line: " . $e->getLine(). PHP_EOL;
   }
   echo "Continue the PHP code\n";
?>

आउटपुट

उपरोक्त प्रोग्राम में, हमें निम्न त्रुटि मिलेगी -

class XYZ
Error occurred
Call to a member function Hello() on null
File: /home/cg/root/9008538/main.php
Line: 11
Continue with the PHP code

नोट: उपरोक्त उदाहरण में, हम एक अशक्त वस्तु पर एक विधि कहते हैं। कैच का उपयोग अपवाद को संभालने और फिर PHP कोड को जारी रखने के लिए किया जाता है।

अंकगणित त्रुटि

हम अंकगणितीय त्रुटि के DivisionByZeroError का उपयोग करेंगे। लेकिन फिर भी, हमें डिवीजन ऑपरेटर पर चेतावनी त्रुटि मिलेगी।

उदाहरण:अंकगणितीय त्रुटि

<?php
   $x = 10;
   $y = 0;
   try {
      $z = intdiv($x , $y);
   }
   catch (DivisionByZeroError $e) {
      echo "Error has occured\n";
      echo $e->getMessage() . PHP_EOL ;
      echo "File: " . $e->getFile() . PHP_EOL;
      echo "Line: " . $e->getLine(). PHP_EOL;
   }
   echo "$z \n";
   echo " continues with the PHP code\n";
?>

आउटपुट

उपरोक्त प्रोग्राम का आउटपुट चेतावनी त्रुटि के साथ निष्पादित होगा -

Division by zero
File: /home/cg/root/9008538/main.php
Line: 5
continues with the PHP code

नोट: उपरोक्त कार्यक्रम में, हम theDivisionByZeroError intheintdiv() फ़ंक्शन को पकड़ते हैं और रिपोर्ट करते हैं।


  1. PHP में error_log () फ़ंक्शन

    error_log() फ़ंक्शन सर्वर एरर-लॉग, फ़ाइल या दूरस्थ गंतव्य पर एक त्रुटि भेजता है। सिंटैक्स error_log(message, message_type, destination, extra_headers) पैरामीटर संदेश - त्रुटि संदेश जिसे लॉग किया जाना चाहिए। message_type - यह कहता है कि त्रुटि कहाँ जानी चाहिए। संभावित संदेश प्रकार इस प्रकार ह

  1. PHP में user_error () फ़ंक्शन

    PHP में user_error () फ़ंक्शन ट्रिगर_एरर () फ़ंक्शन का एक उपनाम है। इसका उपयोग उपयोगकर्ता त्रुटि स्थिति को ट्रिगर करने के लिए किया जाता है, इसका उपयोग अंतर्निहित त्रुटि हैंडलर के संयोजन के साथ, या उपयोगकर्ता परिभाषित फ़ंक्शन के साथ किया जा सकता है जिसे नए त्रुटि हैंडलर के रूप में सेट किया गया है। सि

  1. PHP में error_get_last () फ़ंक्शन

    error_get_last () फ़ंक्शन को अंतिम त्रुटि एक सहयोगी सरणी के रूप में हुई। सहयोगी सरणी में चार कुंजियां होती हैं - [प्रकार] - त्रुटि प्रकार का वर्णन करता है [संदेश] - त्रुटि संदेश का वर्णन करता है [फ़ाइल] - उस फ़ाइल का वर्णन करता है जहां त्रुटि हुई [लाइन] - उस लाइन का वर्णन करता है जहां त्