दिलचस्प पोस्ट
jQuery विशेषता नाम शामिल है आप ActionBarSherlock में मल्टी-चयन और प्रासंगिक क्रिया मोड कैसे लागू कर सकते हैं? C ++ में कौन से मूल्यों की संख्या पूर्णांक प्रकार को स्टोर कर सकती है एएसपी.नेट एमवीसी बाध्यकारी डीबगिंग के लिए सर्वोत्तम प्रथाओं ORDER BY खंड के साथ एक दृश्य बनाएं Json फ़ाइल में एक मान को अपडेट कैसे करें और इसे नोड.जेएस के माध्यम से सहेजें PostgreSQL 9.3 का उपयोग करके डायनामिक धुरी क्वेरी एंड्रॉइड में sdcard को डेटाबेस फ़ाइल कॉपी करें रूबी के पास पायथन क्या नहीं है, और इसके विपरीत? तुलनात्मक और तुलनात्मक उपयोग करने के लिए कब एक सरणी से बेतरतीब ढंग से एक तत्व कैसे चुनें विभाजन गलती, बड़ी सरणी एक NumPy सरणी में भिन्न डेटाटाइप स्टोर करें? जिथूब प्रोजेक्ट के अंदर खोज कोड मैं एक स्ट्रिंग में एक पायथन डिक्शनरी को कैसे सीरियल कर सकता हूँ, और फिर वापस एक शब्दकोश में?

क्या यह "खराब" उपयोग करने के लिए try-catch प्रवाह प्रवाह के लिए .net में है?

मैं सिर्फ एक परियोजना में पाया:

try { myLabel.Text = school.SchoolName; } catch { myPanel.Visible = false; } 

मैं यह डेवलपर से बात करना चाहता हूं, यह कहकर कि यह अशक्त अपवाद (क्योंकि school सैद्धांतिक रूप से शून्य हो सकता है, myLabel नहीं है) वास्तव में कंप्यूटर बीप को तीन बार बना देगा और दो सेकंड के लिए सोएगा हालांकि, मुझे आश्चर्य है कि अगर मैं इसके बारे में नियम को गलत कह रहा हूं। जाहिर है, यह कोशिश / पकड़ने के लिए इरादा उपयोग नहीं है, लेकिन क्या यह बुरा है क्योंकि यह प्रदर्शन की वजह से इरादा, या बुरा को बदलता है? मुझे लगता है कि यह सिर्फ बुरा है, लेकिन मैं "वास्तव में खराब है" से अधिक कहना चाहता हूं।

Solutions Collecting From Web of "क्या यह "खराब" उपयोग करने के लिए try-catch प्रवाह प्रवाह के लिए .net में है?"

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

मेरी राय में यह खराब है क्योंकि इसे एक बयान के साथ और अधिक स्पष्ट किया जा सकता है:

 if (school != null) { myLabel.Text = school.SchoolName; } else { myPanel.Visible = false; } 

यह निश्चित रूप से अपवाद को अनावश्यक रूप से संभालने से बचने और कोड का अर्थ बहुत स्पष्ट बनाने से बचने के लिए होगा।

मुझे लगता है यह बुरा है क्योंकि यह एक के लिए एक अपवाद के खिलाफ कोडिंग है और यह भी अनावश्यक ओवरहेड का वारिस होगा अपवादों को केवल तब पकड़ा जाना चाहिए जब वे एक विशेष तरीके से संभाला जा रहे हों।

असाधारण मामलों के लिए विशेष रूप से अपवादों को पकड़ना चाहिए जिन्हें आप भविष्यवाणी नहीं कर सकते हैं, इस मामले में यह देखने के लिए एक सरल जांच है कि क्या स्कूल निरर्थक हो सकता है, वास्तव में यह उम्मीद की जाती है कि स्कूल शून्य हो सकता है (चूंकि लेबल कुछ भी नहीं है)। यदि विद्यालय निरर्थक था और इससे जुड़ा होना चाहिए था, तो इसे अपना तर्क देना चाहिए न्यूनतम अपवाद

आप बिल्कुल सही हैं कि यह बुरा है। यह बुरा है क्योंकि यह इरादा defies और क्योंकि यह प्रदर्शन दर्द होता है

मुझे पता है कि अलग-अलग प्रोग्रामिंग शैलियों के लिए जगह है, लेकिन व्यक्तिगत रूप से, मुझे लगता है कि यह काम करता है, और मैं देख सकता हूं कि कोड क्या करने का प्रयास कर रहा है, यह पठनीयता और कोड स्पष्टता का भी दर्द उठाता है, जिससे यह रखरखाव के लिए अधिक मुश्किल हो जाता है। प्रोग्रामर का पालन करने के लिए यदि एक बयान यहां अधिक उपयुक्त है,

अपवादों को फेंकने पर प्रदर्शन पर नकारात्मक प्रभाव पड़ता है, देखें http://msdn.microsoft.com/en-us/library/ms229009(VS.80).aspx

अपवाद रनटाइम ओवरहेड करते हैं, लेकिन यह शायद यहां नगण्य है। डीबगर में एक अंतर चल रहा होगा, लेकिन निर्मित बाइनरी बहुत तेज गति से चलनी चाहिए

अपने डेवलपर को बताएं कि कोई भी चिम्प कोड कोड बना सकता है जो मशीन पढ़ सकता है। अच्छे कोड मनुष्य के लिए लिखा जाता है, मशीन नहीं। यदि एक निरर्थक अपवाद केवल आप के बारे में चिंतित हैं, तो यह संभवतः उपयोगकर्ता के कोड में एक बग है – किसी को भी इस तरह से किसी भी चीज़ को रिक्त करने की कोशिश नहीं करनी चाहिए। इसके बजाय एक Assert() कथन का उपयोग करें

मुझे प्रवाह नियंत्रण के लिए अपवाद का उपयोग करना पसंद नहीं है I अपवाद महंगे हैं, और यह तय करना मुश्किल है कि कोड के अन्य स्थानों तक पहुंचने के लिए अपवाद के साथ एक प्रोग्राम का वास्तविक प्रवाह क्या है। मेरे लिए यह GoTo उपयोग करने जैसा है इसका मतलब यह नहीं है कि आपको अपवादों से बचना चाहिए, लेकिन एक अपवाद होना चाहिए, कार्यक्रम में आम तौर पर क्या करना चाहिए इसका अपवाद होना चाहिए।

मुझे लगता है कि कोड का एक बुरा हिस्सा है, यह अपवाद के साथ कुछ भी नहीं कर रहा है। कोई लॉगिंग या यहां तक ​​कि एक स्पष्टीकरण नहीं है कि अपवाद क्यों फेंका जा रहा है।

इस पोस्ट को देखें "नियंत्रण के नियमित प्रवाह के रूप में अपवाद का उपयोग क्यों नहीं करें?"

मैं यहाँ सभी के साथ सहमत हूं – यह एक भयानक विचार है

जावा में कुछ मामलों (मुझे लगता है कि वे ज्यादातर अब चले गए हैं, लेकिन अभी भी कुछ बाहरी पुस्तकालयों में हो सकते हैं) जहां आपको कुछ "अपवाद" मामलों के अपवाद को पकड़ने की आवश्यकता थी

सामान्य तौर पर, जब लाइब्रेरी कोड लिखना (अच्छी तरह से, वास्तव में कोई भी वर्ग), जो कुछ भी संभवतः बचा जा सकता है, के लिए अपवाद का उपयोग करने से बचें। यदि यह संभव है कि कोई नाम फ़ील्ड सेट न हो और उसे लिखने () विधि में एक अपवाद होना चाहिए, तो एक isValid () विधि को जोड़ना सुनिश्चित करें ताकि आप लिखने के आसपास अपवाद को पकड़ने के लिए वास्तव में न हो वहाँ एक समस्या है।

(बैड जावा कोड एडेंडम): यह "अच्छा" प्रोग्रामिंग शैली जावा में चेक अपवादों के लिए लगभग पूरी तरह से समाप्त करती है, और जावा में चेक किए गए अपवाद चूसते हैं।