मैं PHP में अपवादों के साथ खेल रहा हूं। उदाहरण के लिए, मेरे पास एक स्क्रिप्ट है जो $ _GET अनुरोध पढ़ती है और फ़ाइल लोड करती है; फ़ाइल मौजूद नहीं है, तो एक नया अपवाद उत्पन्न किया जाना चाहिए:PHP घातक त्रुटि: अपवाद अपवाद 'अपवाद'
if (file_exists($_SERVER['DOCUMENT_ROOT'] .'/'.$_GET['image'])) {
// Something real amazing happens here.
}
else {
throw new Exception("The requested file does not exists.");
}
समस्या यह है कि, जब मैं परीक्षण के लिए एक गैर विद्यमान फ़ाइल देने की कोशिश करते हैं, मैं बजाय एक 500 त्रुटि अपवाद संदेश मिला । सर्वर लॉग निम्न है:
[09-Jul-2013 18:26:16 UTC] PHP Fatal error: Uncaught exception 'Exception' with message 'The requested file does not exists.' in C:\sites\wonderfulproject\script.php:40
Stack trace:
#0 {main}
thrown in C:\sites\wonderfulproject\script.php on line 40
मुझे आश्चर्य है कि मुझे यहां कुछ वास्तविक याद आ रही है।
मैंने इस प्रश्न को PHP fatal error: Uncaught exception 'Exception' with message पर देखा है, लेकिन यह मेरी समस्या की तरह नहीं है, और कोई संक्षिप्त जवाब नहीं है।
सहायता, कृपया?
* संपादित करें *
यह throw
कीवर्ड से संबंधित यह कुछ है लगता है। उदाहरण के लिए, यदि मैं echo
का उपयोग करता हूं, तो मुझे स्क्रीन पर मुद्रित संदेश मिला, जैसे:
संदेश के साथ अपवाद 'अपवाद' फ़ाइल मौजूद नहीं है। सी में: \ sites \ wonderfulproject \ script.php: 183 स्टैक ट्रेस: # 0 {मुख्य}
वह क्यों है? @Orangepill को
** संपादित 2 **
धन्यवाद, मैं अपवाद को संभालने के लिए के बारे में एक बेहतर समझ मिल गया। और मुझे nettuts से एक शानदार टट मिला जो बहुत मदद की। लिंक: http://net.tutsplus.com/tutorials/php/the-ins-and-outs-of-php-exceptions/
आपका लॉग आपको बिल्कुल बताता है कि आप क्या कहना चाहते थे, समस्या क्या है? –
'file_exists' स्पष्ट रूप से 'झूठी' लौटा, संभवतः क्योंकि फ़ाइल वास्तव में * अस्तित्व में नहीं है। – deceze
@DanyCaissy मुद्दा यह है कि मुझे अपने संदेश और स्क्रीन में स्टैक ट्रेस के साथ अपवाद होने के बजाय 500 - आंतरिक सर्वर त्रुटि मिल रही है। – darksoulsong