PHP के पुराने संस्करणों में, यदि हम एक अपवाद को पकड़ना चाहते थे, तो हमें उसे एक वेरिएबल में स्टोर करना पड़ता था ताकि यह जांचा जा सके कि वह वेरिएबल उपयोग किया गया है या नहीं।
PHP 8 से पहले, एक्सेप्शन कैच ब्लॉक को संभालने के लिए, हमें try ब्लॉक द्वारा फेंके गए अपवाद को एक वेरिएबल में पकड़ने की आवश्यकता होती थी।
उदाहरण: PHP में कैप्चरिंग एक्सेप्शन कैच
<?php
function foo()
{
try{
throw new Exception('Hello');
}
catch (Exception $e) {
return $e->getMessage();
}
} ?>
व्याख्या - उपरोक्त प्रोग्राम में, अपवाद को कैच ब्लॉक द्वारा वेरिएबल $e में पकड़ा जा रहा है। अब $e वेरिएबल अपवाद के बारे में कोड, संदेश आदि जैसी कोई भी जानकारी रख सकता है।
PHP 8 ने नॉन-कैप्चरिंग कैच पेश किया। अब, अपवादों को वेरिएबल्स में कैप्चर किए बिना पकड़ना संभव है। अब हम वेरिएबल को नजरअंदाज कर सकते हैं।
उदाहरण: PHP 8 में नॉन-कैप्चरिंग एक्सेप्शन कैच
<?php
try{
throw new Exception('hello');
}
catch (Exception) { // $e वेरिएबल छोड़ा गया } ?>
नोट: उपरोक्त प्रोग्राम में, हम अपवाद जानकारी रखने के लिए $e वेरिएबल का उपयोग नहीं कर रहे हैं।