परिचय
ट्राई-कैच के ब्लॉक को किसी भी वांछित स्तर तक नेस्ट किया जा सकता है। अपवादों को उपस्थिति के उल्टे क्रम में संभाला जाएगा यानी अंतरतम अपवाद प्रसंस्करण पहले किया जाता है।
उदाहरण
निम्नलिखित उदाहरण में, आंतरिक प्रयास ब्लॉक जांचता है कि क्या दो में से कोई एक गैर-संख्यात्मक है, और यदि ऐसा है, तो उपयोगकर्ता परिभाषित अपवाद फेंकता है। आउटर ट्राई ब्लॉक थ्रो DivisionByZeroError यदि हर 0 है। अन्यथा दो संख्याओं का विभाजन प्रदर्शित होता है।
उदाहरण
<?php class myException extends Exception{ function message(){ return "error : " . $this->getMessage() . " in line no " . $this->getLine(); } } $x=10; $y=0; try{ if (is_numeric($x)==FALSE || is_numeric($y)==FALSE) throw new myException("Non numeric data"); } catch (myException $m){ echo $m->message(); return; } if ($y==0) throw new DivisionByZeroError ("Division by 0"); echo $x/$y; } catch (DivisionByZeroError $e){ echo $e->getMessage() ."in line no " . $e->getLine(); } ?>
आउटपुट
निम्न आउटपुट प्रदर्शित होता है
Division by 0 in line no 19
किसी भी एक चर को गैर-संख्यात्मक मान में बदलें
error : Non numeric data in line no 20
यदि दोनों चर संख्याएं हैं, तो उनका विभाजन मुद्रित होता है