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

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

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

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

त्रुटि: PHP 7 TypeError, ArithmeticError, ParserError, और AssertionError फेंकता है, लेकिन चेतावनी और नोटिस त्रुटियां अपरिवर्तित रहती हैं। try/catch ब्लॉक का उपयोग करके, त्रुटि उदाहरण को पकड़ा जा सकता है, और अब घातक त्रुटियां एक त्रुटि उदाहरण फेंक सकती हैं। 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

नोट: उपरोक्त प्रोग्राम में, हम intdiv() फ़ंक्शन के अंदर DivisionByZeroError को पकड़ते और रिपोर्ट करते हैं।

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

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

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

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

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

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