क्या दोनों को एक ही कोड डालने और ब्लॉक करने का एक अच्छा कारण है?


13

फ़ाइल में: विधि के app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Datetime.phpभीतर render(), ऐसा लगता है कि ठीक उसी कोड को कोशिश और पकड़ने वाले ब्लॉक दोनों में चलाया जा रहा है। अपवाद बिल्कुल नहीं संभाला जाता है। मैं यह जानने के लिए उत्सुक हूं कि इस तरह कोड लिखने के क्या कारण हैं (यदि कोई हो):

try {
     $data = Mage::app()->getLocale()
         ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format);
} catch (Exception $e) {
     $data = Mage::app()->getLocale()
         ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format);
}

जवाबों:


3

मेरे लिए उस विशिष्ट मामले में ऐसे कोड का कोई कारण नहीं है।

मैं उन कारणों के बारे में सोच सकता हूं जहां आप समय-समय पर अनुरोधों के साथ काम कर सकते हैं।

उदाहरण के लिए:

  • कुछ कोड को समाप्त करने के लिए एक लंबा समय लगता है
  • आप कुछ ऐसा करने की कोशिश करते हैं जो इस कोड के परिणाम पर निर्भर करता है
  • कोड के रूप में अभी तक एक अपवाद नहीं फेंका गया है
  • अपने पकड़ ब्लॉक में आप कुछ प्रतीक्षा समय ( sleep) जोड़ते हैं और फिर से प्रयास करते हैं

लेकिन किसी भी मामले में यह बहुत खराब डिजाइन है और यह प्रदर्शन के मामले में खराब है क्योंकि अपवाद संसाधन खपत हैं।

catchब्लॉक केवल अपवाद हैंडलिंग और अधूरा सामान का रोलबैक के लिए इस्तेमाल किया जाना चाहिए (उदाहरण के लिए डेटाबेस रोलबैक)

मैंने आपके द्वारा बताए गए कोड के लिए पूरी विधि की जांच नहीं की, लेकिन जब भी मुझे इस तरह का कोड दिखाई देता है, तो मुझे लगता है कि कोड को फिर से व्यवस्थित किया जाना चाहिए और / या प्रोग्रामर के साथ एक बात इस कोड के पीछे के कारण को समझने के लिए आवश्यक है कोड में बड़ी समस्याओं को छिपा सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.