2015-09-18 19 views
5

हमारे पास सी # में लिखा गया एक इन-हाउस एपीआई है जहां कई विधियों में मूल्य वापस आते हैं, आमतौर पर बूल या इनट्स, जो कभी-कभी कॉलर्स अनदेखा करते हैं। रिटर्न वैल्यू एक कारण के लिए हैं, उदाहरण के लिए, किसी समस्या या किसी प्रकार का परिणाम इंगित करने के लिए, इसलिए हम कॉलर्स को वास्तव में परिणाम की जांच करने के बजाय प्रोत्साहित करना चाहते हैं कि केवल अपेक्षित तरीके से काम करने के बजाय, केवल चीजों को खराब करने के लिए आगे नीचे की ओर।विजुअल स्टूडियो - यदि कोई वापसी मूल्य चेक नहीं किया गया है तो चेतावनी उत्पन्न करने का कोई तरीका है?

क्या कोई कॉलर गैर-शून्य विधि के वापसी मूल्य की जांच करने में विफल रहता है, तो चेतावनी या त्रुटि का उपयोग करके कॉल फ़्लैग करके वापसी मूल्यों को चेक करके लागू करने के लिए विजुअल स्टूडियो कंपाइलर का उपयोग करने का कोई तरीका है?

+0

आप कुछ सुपर गूंगा कर सकते हैं और हर जगह 'आउट' पैरामीटर का उपयोग कर सकते हैं। –

+6

ऐसा लगता है कि आप त्रुटि कोड लौट रहे हैं। असफल राज्यों को इंगित करने के लिए आप अपवादों का उपयोग क्यों नहीं कर रहे हैं? –

+0

शायद स्टाइलकॉप या FxCop जैसे टूल मदद कर सकते हैं? मैंने व्यक्तिगत रूप से उनका उपयोग नहीं किया, लेकिन मुझे लगता है कि यह उन दोनों के लिए एक अच्छा उपयोग मामला हो सकता है। – jjczopek

उत्तर

4

आप बेहतर प्रथाओं को प्रोत्साहित करने, अपवाद उपयोग करना चाहते हैं है। इससे कम से कम उन्हें कुछ पता चल जाएगा अगर वे कुछ भी करने के लिए उपेक्षित होते हैं। अगर वे अपवाद दफन करते हैं, तो वे इसे दफन करते हैं। लेकिन ऐसा करने के लिए एक सक्रिय निर्णय की आवश्यकता है।

मूल रूप से जब भी आपका कोड जा सकता है "मैं एक बिंदु पर हूं जहां कोई समस्या है और समाधान या तो अनुपस्थित या अस्पष्ट है" फेंकने के लिए है।

अपवाद फेंकने के अलावा, जब आप कॉलर पर नियंत्रण वापस लौटते हैं, तो प्रोग्रामिंग के बाद आप कुछ भी नहीं कर सकते हैं जो वे बाद में करते हैं।

+0

बताए जाने का अभ्यास नहीं होना चाहिए अपवाद फेंकना हमेशा बेहतर नहीं होता है। उदाहरण के लिए, सभी। ट्राईपर्स मेथोड्स (int.TryParse()) एक अपवाद फेंक नहीं देता है जब इनपुट को int में पार्स नहीं किया जा सकता है। ज्यादातर समय yoiu को गीलेर की जांच करनी चाहिए पार्सिंग सफल थी, लेकिन कुछ परिस्थितियों में यह नहीं है। उदाहरण के लिए जब परिणाम का डिफ़ॉल्ट मान वह मान होता है जिसकी आपको आवश्यकता होती है जब इनपुट को पार्स नहीं किया जा सकता – Luc

+0

TryParse का उपयोग समझ में आता है यदि आपके पास यह अपेक्षा है कि यह असफल हो और बैकअप योजना हो (उदाहरण के लिए, एक डिफ़ॉल्ट मान) । हालांकि, यदि अन्य लोग आपका कोड बुला रहे हैं, और आप एक अमान्य इनपुट मान को संभालने की ज़िम्मेदारी नहीं चाहते हैं, तो अभी भी पार्स का उपयोग करने के लिए और कॉलर को अपवाद बबल करने के लिए अभी भी अधिक उपयोगी है। – SaxxonPike

2

वहां पहले से ही इस के लिए एक संकलक चेतावनी है, [MSDN] [1]

[1]: https://msdn.microsoft.com/en-us/library/ms182273.aspx आप FX पुलिस का उपयोग

+0

यह केवल ऑब्जेक्ट्स या HRESULT की जांच करने का दावा करता है, इसलिए यदि आप एक सादा int वापस करते हैं तो यह प्रकट नहीं होता है कि यह काम करेगा। –

+0

जबकि यह उपयोगकर्ताओं के प्रश्न का उत्तर देता है, यह कॉलिंग कोड को कुछ बुरी/अप्रत्याशित घटना –

संबंधित मुद्दे

 संबंधित मुद्दे