के बीच चयन करना मैंने एक कक्षा बनाई है जो फ़ाइल से कुछ दस्तावेज़ों को पार करती है।अपवाद और वापसी मूल्य
class Parser
{
public Parse(string fileName)
{
///
}
}
कभी-कभी उस मामले पार्सर में त्रुटियों को पार्स है कुछ डेटा वापस जाने के लिए हो सकता है। मैंने इसके लिए विशेष कक्षा बनाई है।
class ParsingError
{
// some data
}
मैं इस तरह की त्रुटियों से सही ढंग से कैसे निपट सकता हूं। मेरे पास कम से कम दो विकल्प हैं:
मेरा अपना अपवाद या वापसी मूल्य बनाएं।
विकल्प एक
myParser.Parse(fileName, out error);
विकल्प दो
try
{
myParser.Parse(fileName)
}
catch(MyParsingException ex)
{
// use ex.Error field
}
अद्यतन
मैं विचारधारा गलत नहीं कर रहा हूँ, तो पीछे अपवाद है कि यह कुछ असाधारण के साथ सौदा करना चाहिए, यह कुछ परिस्थिति है कि विधि का निपटारा करने का इरादा नहीं है।
इस ओर जाता है मुझे आश्चर्य है अगर उदाहरण के लिए:
पार्सर फ़ाइल में अज्ञात क्षेत्र पाता है, या एन्कोडिंग
कि एक असाधारण मामले पर विचार किया जाएगा गलत क्या है?
स्वाद का मामला? पार्सफंक्शन जो मैं सी # में जानता हूं अपवाद का उपयोग करता हूं। – jwillmer
संभावित डुप्लिकेट [।एनईटी रिटर्न वैल्यू बनाम अपवाद डिजाइन प्रश्न फेंक दिया गया है] (http://stackoverflow.com/q/4884539/102112) – Alex
क्या इस प्रश्न के अलावा कुछ और बेहतर है? उस प्रश्न का उत्तर कई प्रश्नों में दिया गया है उदा। http://stackoverflow.com/questions/99683/which-and-why-do-you-prefer-exceptions-or-return-codes – StuperUser