2008-11-03 11 views
52

अगर मुझे एक अवैध राज्य का सामना करना पड़ता है तो मुझे क्या अपवाद फेंकना चाहिए - उदाहरण के लिए, प्रारंभिक विधि जिसे केवल दूसरी बार बुलाया जाना चाहिए? मुझे वास्तव में कोई अंतर्निहित अपवाद नहीं दिखता है जो समझ में आता है। ऐसा कुछ ऐसा लगता है जो ढांचे में होना चाहिए - क्या मैं सही जगह पर पोकिंग नहीं कर रहा हूं?क्या कोई .NET अपवाद है जो एक अवैध ऑब्जेक्ट स्थिति इंगित करता है?

उत्तर

66

InvalidOperationException शायद?

ऑब्जेक्ट की वर्तमान स्थिति के लिए विधि कॉल अमान्य होने पर अपवाद को फेंक दिया गया अपवाद।

+3

अधिक से अधिक लोगों को नए बनाने के बजाय अवैधऑपरेशन अपवाद का उपयोग करना चाहिए। – JaredPar

+0

धन्यवाद! मुझे पता था कि कुछ होना था। –

+2

सच है, या कम से कम इसे प्राप्त करें ताकि अमान्यऑपरेशन अपवाद को पकड़ने से व्युत्पन्न भी हो सके। आईओई (एमएसडीएन के नीचे) से प्राप्त अपवादों को देखें ताकि यह देखने के लिए कि यह आपके खुद को रोल करने के लिए कब समझ सकता है। –

-3

अगर मैं सिस्टम कहूंगा। InvalidProgramException आप जो चाहते हैं उसके नजदीक आते हैं। एक कस्टम अपवाद फेंकने में क्या गलत है?

+4

आईपीई: "अपवाद जो फेंक दिया जाता है जब किसी प्रोग्राम में अमान्य माइक्रोसॉफ्ट इंटरमीडिएट भाषा (एमएसआईएल) या मेटाडाटा होता है। आम तौर पर यह प्रोग्राम उत्पन्न करने वाले कंपाइलर में एक बग इंगित करता है।" मानक अपवादों का उपयोग ढांचे और तीसरे पक्ष के ऐप्स के आसपास स्थिरता बनाता है। –

+4

यदि आपके मामले का समर्थन करने के लिए ढांचे में कुछ भी नहीं है तो कस्टम अपवादों में कुछ भी गलत नहीं है। मैं एक कस्टम ऐरेलिस्ट लिख सकता था, लेकिन मैं क्यों? –

+0

ठीक है, जैसे प्यूरानिया मुझे नहीं मिलता है आपको ऐसा क्यों लगता है कि यह इतना महत्वपूर्ण है? आपको ArrayList को लागू करने के लिए कुछ कोड लिखना है, लेकिन इसकी तुलना कस्टम अपवाद बनाने के लिए नहीं की जा सकती है ... – botismarius

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