PHP में अपवाद फेंकना कैच ब्लॉक का प्रयास करें




exception-handling drupal-6 (4)

मेरे पास Drupal 6। मॉड्यूल फ़ाइल में एक PHP फ़ंक्शन है। मैं अधिक गहन कार्यों (जैसे डेटाबेस प्रश्न) निष्पादित करने से पहले आरंभिक चर मान्यताओं को चलाने का प्रयास कर रहा हूं। सी # में, मैं अपने प्रयास ब्लॉक की शुरुआत में आईएफ स्टेटमेंट्स को लागू करता था, जो सत्यापन विफल होने पर नए अपवाद फेंक देते थे। फेंक दिया अपवाद कैच ब्लॉक में पकड़ा जाएगा। निम्नलिखित मेरा PHP कोड है:

function _modulename_getData($field, $table) {
  try {
    if (empty($field)) {
      throw new Exception("The field is undefined."); 
    }
    // rest of code here...
  }
  catch (Exception $e) {
    throw $e->getMessage();
  }
}

हालांकि, जब मैं कोड चलाने की कोशिश करता हूं, तो यह मुझे बता रहा है कि वस्तुओं को केवल कैच ब्लॉक के भीतर फेंक दिया जा सकता है।

अग्रिम में धन्यवाद!


थ्रो को \Exception द्वारा तत्काल ऑब्जेक्ट की आवश्यकता होती है। सिर्फ $e पकड़ लिया चाल चल सकता है।

throw $e

फिर से करने के लिए

 throw $e;

संदेश नहीं


function _modulename_getData($field, $table) {
  try {
    if (empty($field)) {
      throw new Exception("The field is undefined."); 
    }
    // rest of code here...
  }
  catch (Exception $e) {
    /*
        Here you can either echo the exception message like: 
        echo $e->getMessage(); 

        Or you can throw the Exception Object $e like:
        throw $e;
    */
  }
}

throw $e->getMessage();

आप एक string फेंकने की कोशिश करते हैं

एक sidenote के रूप में: अपवाद आमतौर पर आवेदन के असाधारण राज्यों को परिभाषित करने के लिए हैं, सत्यापन के बाद त्रुटि संदेशों के लिए नहीं। यह एक अपवाद नहीं है, जब कोई उपयोगकर्ता आपको अमान्य डेटा देता है





try-catch