मैं कुछ डेटा एक्सेस कोड लिख रहा हूं और मैं डेटाबेस में संभावित "अमान्य" डेटा राज्यों की जांच करना चाहता हूं। उदाहरण के लिए, मैं डेटाबेस से बाहर एक विजेट लौट रहा हूं और मैं केवल एक की उम्मीद करता हूं। अगर मुझे दो मिलते हैं, तो मैं अपवाद फेंकना चाहता हूं। भले ही रेफरेंसियल अखंडता को इसे होने से रोका जाना चाहिए, मैं डीबीए पर स्कीमा को कभी भी नहीं बदलना चाहता हूं (इसे स्पष्ट करने के लिए, यदि प्राथमिक कुंजी बाधा हटा दी जाती है और मुझे डुप्ली मिलती है, तो मैं जल्दी और स्पष्ट रूप से तोड़ना चाहता हूं)।अमान्य डेटाबेस स्थिति के लिए फेंकने के लिए कौन सा .NET अपवाद?
मैं System.IO.InvalidDataException का उपयोग करना चाहता हूं, सिवाय इसके कि मैं एक फ़ाइल स्ट्रीम से निपट नहीं रहा हूं, इसलिए यह भ्रामक होगा। मैं एक सामान्य अनुप्रयोग अपवाद के साथ जा रहा समाप्त हो गया। किसी के पास एक बेहतर विचार है?
हां, मैं इसे फ़ाइल से डेटा लोड करने के लिए उपयोग करूंगा - मैं आपके तर्क से सहमत हूं। मैं आगे बढ़ूंगा और अमान्यडेटाएक्सप्शन का उपयोग करूंगा। – jslatts
यह शायद वास्तव में सबसे उपयुक्त मौजूदा अपवाद वर्ग है। यह सिर्फ अजीब IMHO लगता है - @ जोन स्कीट के डेटा स्ट्रीम तर्क के बावजूद - 'System.IO' नेमस्पेस से अपवाद फेंकने के लिए जब आप' System.Data' से संबंधित चीजें करते हैं। (बेशक, नामस्थानों का ठोस अर्थ अतिसंवेदनशील नहीं होना चाहिए, लेकिन यह अभी भी एक सूक्ष्म संदेश को व्यक्त करता है कि यह * फेंकने के लिए सही चीज़ नहीं हो सकता है।) मुझे लगता है कि इस मामले में, एक कस्टम अपवाद वर्ग प्रदान करना होगा न्यायसंगत होना – stakx
गैर-फ्रेमवर्क कोड से मूल रूपरेखा अपवादों को फेंकने के खिलाफ व्यक्तिगत रूप से Im समर्थन कारणों को सही तरीके से निर्देशित नहीं किया जा सकता है। शायद ApplicationInvalidDataException नामक एक सबक्लास उचित होगा? –