आइए त्रुटियों और अपवादों के बीच अंतर पर चर्चा करते हैं।
- त्रुटि से पुनर्प्राप्त करना संभव नहीं है। त्रुटियों का एकमात्र समाधान निष्पादन को समाप्त करना है। जबकि हम ट्राइ-कैच ब्लॉक का उपयोग करके या कॉल करने वाले को एक अपवाद वापस फेंककर एक्सेप्शन से रिकवर कर सकते हैं।
- आप ट्राइ-कैच ब्लॉक का उपयोग करके त्रुटियों को संभालने में सक्षम नहीं होंगे। यहां तक कि अगर आप ट्राइ-कैच ब्लॉक का उपयोग करके उन्हें संभालते हैं, तो ऐसा होने पर आपका एप्लिकेशन रिकवर नहीं होगा। दूसरी ओर, अपवादों को ट्राइ-कैच ब्लॉक का उपयोग करके नियंत्रित किया जा सकता है और यदि ऐसा होता है तो वे प्रोग्राम को सामान्य रूप से प्रवाहित कर सकते हैं।
- अपवाद एप्लिकेशन से संबंधित हैं जबकि त्रुटियां उस वातावरण से संबंधित हैं जिसमें एप्लिकेशन चल रहा है।
उदाहरण
<?php try { $row->insert(); $inserted = true; } catch (Exception $e) { echo "There was an error inserting the row - ".$e->getMessage(); $inserted = false; } echo "Some more stuff"; ?>
स्पष्टीकरण
कार्यक्रम का निष्पादन जारी रहेगा - क्योंकि आपने अपवाद को 'पकड़ा' है। एक अपवाद को एक त्रुटि के रूप में माना जाएगा जब तक कि वह पकड़ा न जाए। यह आपको प्रोग्राम के विफल होने के बाद भी निष्पादन जारी रखने की अनुमति देगा।
उदाहरण
<?php $foo = [bar]; echo $foo; ?>
स्पष्टीकरण
PHP नोटिस के साथ प्रोग्राम का निष्पादन रुक जाएगा:सरणी से स्ट्रिंग रूपांतरण।