2013-02-12 12 views
7

यदि आप अपने कोड (see reference) में System.IndexOutOfRangeException फेंकते हैं तो FxCop नियम CA2201 का उल्लंघन जारी करता है। इसके लिए तर्क यह है कि System.IndexOutOfRangeException दस्तावेज के अनुसार "आरक्षित और सामान्य भाषा रनटाइम द्वारा ही फेंक दिया जाना चाहिए" है।सी # में आरक्षित अपवाद फेंकते समय क्या गलत हो सकता है?

लेकिन यदि आप System.IndexOutOfRangeException फेंकते हैं तो वास्तव में क्या गलत हो सकता है?

+7

आपको इसे खुद को फेंकने की आवश्यकता क्यों होगी? – Oded

+0

@ ओडेड जब आप निम्न स्तर की डेटा संरचनाओं को कार्यान्वित कर रहे हैं। – Romoku

+4

@ रोमोकू - फिर भी। अधिकांश प्रकारों के साथ आपके पास मौजूदा प्रकार में अंतर्निहित भंडारण होगा जो पहले से ही इसे फेंक देगा। – Oded

उत्तर

4

कुछ भी नहीं।

तकनीकी दृष्टि से यह अपवाद फेंकना बिल्कुल ठीक है। यदि आप करते हैं तो कुछ भी नहीं तोड़ देगा।

लेकिन ध्यान रखें कि आपको System.IndexOutOfRangeException केवल तभी फेंकना चाहिए यदि आपको System.IndexOutOfRangeException पहली जगह का सामना करना पड़ा, क्योंकि अन्यथा यह अपवाद उचित नहीं होगा क्योंकि यह स्पष्ट रूप से परिभाषित किया गया है कि इस अपवाद प्रकार का उपयोग किस प्रकार किया जाना है। MSDN states for theSystem.IndexOutOfRangeException:

अपवाद है कि जब एक प्रयास एक सूचकांक सरणी की सीमा से बाहर है कि के साथ एक सरणी का एक तत्व का उपयोग किया जाता है फेंक दिया। इस वर्ग को विरासत नहीं बनाया जा सकता।

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