c# - Error: Not all code paths return a value -
इस सवाल का पहले से ही एक उत्तर है: < / p>
- 7 जवाब
ऐसा क्यों होता है? यहां बिन फाइल से शब्दकोश पढ़ने के लिए मेरा कोड है
सार्वजनिक स्थिर ऑब्जेक्ट LoadObject () {try (if file.Exists ("D: //my.bin")) {FileStream stream = File.OpenRead ( "डी: //my.bin"); BinaryFormatter formatter = नया BinaryFormatter (); शब्दकोश & lt; int, प्रश्न & gt; deserializedObject = (शब्दकोश & lt; int, प्रश्न & gt;) formatter.Deserialize (स्ट्रीम); stream.Close (); deserializedObject वापसी; }} पकड़ {}}
आपकी विधि किसी वस्तु प्रकार को वापस करने के लिए मान ली जाती है < कोड> ऑब्जेक्ट , लेकिन आप केवल
try ब्लॉक में लौट रहे हैं और वह भी
if स्टेटमेंट के अंदर से है इसलिए यदि आपकी स्थिति विफल हो जाती है, तो आपका तरीका कुछ भी वापस नहीं करेगा। इसके अलावा अगर कोशिश ब्लॉक में एक अपवाद है, तो वस्तु वापस करने से पहले, आपकी विधि कुछ भी वापस करने में विफल हो जाएगी। यही कारण है कि आपको त्रुटि मिल रही है आप यह तय कर सकते हैं कि
null से बाहर
try / catch ब्लॉक।
सार्वजनिक स्थिर ऑब्जेक्ट LoadObject () {try {if ( फ़ाइल। उदाहरण ("डी: //my.बीन")) {फ़ाइल स्ट्रीम स्ट्रीम = फ़ाइल। ओपनराइड ("डी: //my.बीन"); BinaryFormatter formatter = नया BinaryFormatter (); शब्दकोश & lt; int, प्रश्न & gt; deserializedObject = (शब्दकोश & lt; int, प्रश्न & gt;) formatter.Deserialize (स्ट्रीम); stream.Close (); deserializedObject वापसी; }} पकड़ (अपवाद पूर्व) {// लॉग अपवाद वापसी शून्य; } वापसी नल; }
यद्यपि यह आपकी त्रुटि को ठीक कर देगा, लेकिन अगर आपको फ़ाइल नहीं मिली है, या त्रुटि ऑब्जेक्ट लौटाए जाने पर आपको अपवाद फेंकने के लिए अन्य विकल्प देखना चाहिए।
Comments
Post a Comment