त्रुटि (Error) और अपवाद (Exception) में अंतर
आइए त्रुटियों और अपवादों के बीच के अंतर पर चर्चा करें।
- पुनर्प्राप्ति: त्रुटि से पुनर्प्राप्ति संभव नहीं है। एकमात्र समाधान निष्पादन समाप्त करना है। जबकि हम try-catch ब्लॉक्स का उपयोग करके या अपवाद को कॉलर को वापस फेंककर अपवाद से पुनर्प्राप्त कर सकते हैं।
- हैंडलिंग: आप try-catch ब्लॉक्स का उपयोग करके त्रुटियों को संभाल नहीं सकते। भले ही आप उन्हें try-catch से संभालें, यदि वे होती हैं तो आपका एप्लिकेशन पुनर्प्राप्त नहीं होगा। दूसरी ओर, अपवादों को try-catch ब्लॉक्स का उपयोग करके संभाला जा सकता है और यदि वे होते हैं तो प्रोग्राम फ्लो को सामान्य बना सकते हैं।
- संबंध: अपवाद एप्लिकेशन से संबंधित हैं जबकि त्रुटियाँ उस वातावरण से संबंधित हैं जिसमें एप्लिकेशन चल रहा है।
उदाहरण: अपवाद को पकड़ना
<?php
try {
$row->insert();
$inserted = true;
}
catch (Exception $e) {
echo "पंक्ति डालने में त्रुटि हुई - " . $e->getMessage();
$inserted = false;
}
echo "कुछ और कार्य";
?>
व्याख्या
प्रोग्राम निष्पादन जारी रहेगा - क्योंकि आपने अपवाद को 'पकड़' लिया। एक अपवाद को तब तक त्रुटि माना जाएगा जब तक इसे पकड़ा न जाए। यह आपको विफलता के बाद भी प्रोग्राम निष्पादन जारी रखने की अनुमति देता है।
उदाहरण: त्रुटि (पकड़ने योग्य नहीं)
<?php $foo = [bar]; echo $foo; ?>
व्याख्या
PHP नोटिस के साथ प्रोग्राम निष्पादन रुक जाएगा: Array to string conversion।
सर्वोत्तम अभ्यास
- अपने कोड में अपवादों का उपयोग करें ताकि उन्हें उचित तरीके से संभाला जा सके।
- त्रुटियाँ आमतौर पर घातक होती हैं और इन्हें कोड से नहीं रोका जा सकता।
- PHP 7+ में, कई घातक त्रुटियों को
Errorअपवाद में बदल दिया गया है, जिन्हें पकड़ा जा सकता है।