2011-06-03 21 views
5

मैं आरएसएस प्राप्त करने पर काम कर रहा हूँ बढ़ाता जाता है ताकि जैसे:अपवाद पकड़ें, इनपुट या दोनों मान्य करें?

SyndicationFeed rss = SyndicationFeed.Load(XmlReader.Create(textBox1.Text)); 

XmlReader.Create() इस मामले में 404 त्रुटि पैरामीटर की तरह अशक्त जा रहा चीजों से संबंधित 4 अपवाद के लिए ऊपर फेंक कर सकते हैं, आदि

चाहिए मैं उरी को सत्यापित करने का प्रयास करें (सुनिश्चित करें कि यह शून्य नहीं है, 404, सही डॉक्टरेट इत्यादि) इससे पहले कि मैं उस पंक्ति को कॉल करता हूं या क्या मुझे अपवादों को संभालना चाहिए? मुझे पता है कि मैंने एसओ पर कई बार पढ़ा है कि वास्तव में असाधारण परिस्थितियों के लिए अपवादों का उपयोग किया जाना चाहिए और मैं मानता हूं कि यह उस शर्त को पूरा नहीं लगता है लेकिन अपवादों को संभालना आसान लगता है।

उत्तर

4

Text चेकबॉक्स की संपत्ति कभी शून्य नहीं होती है, इसलिए आप उसे छोड़ सकते हैं। मैन्युअल रूप से उन सभी मामलों की जांच करें जो सरल हैं और प्रक्रिया से संबंधित नहीं हैं जैसे स्ट्रिंग खाली है और यूआरएल सही है और Create विधि के अंदर सत्यापन के लिए अधिक अस्पष्ट एक्सएमएल-विशिष्ट सामग्री छोड़ दें। तो जवाब दोनों को गठबंधन करना है।

इसके अलावा, मुझे एक बार फिर एरिक लिपर्ट द्वारा अपवादों के बारे में blog post का संदर्भ लें। आपके मामले में वेक्सिंग और एक्सोजेनस अपवाद दोनों हो सकते हैं, इसलिए आपको शायद उन्हें पकड़ना चाहिए। लेकिन सुनिश्चित करें कि हड्डी वाले लोग नहीं होते हैं।

0

चूंकि पाठक और सिंडिकेशन फ़ीड दुभाषिया इनपुट को मान्य करेगा, वास्तव में उस प्रयास को डुप्लिकेट करने की आवश्यकता नहीं है। यह विशेष रूप से सच है, क्योंकि ऐसा करने के लिए आपको ठीक उसी दस्तावेज को स्वीकार या अस्वीकार करना होगा। यह कोड का पागल डुप्लिकेशंस होगा।

मैं केवल अपवादों को संभालने की अनुशंसा करता हूं।

0

मैं यह देखने के लिए उत्सुक हूं कि अन्य लोग यहां क्या कहते हैं, लेकिन ऐसा लगता है कि आपको उन सत्यापनों के प्रकार करना चाहिए जिन्हें आप जानते हैं कि आप सही तरीके से कर सकते हैं: शून्य यूआरआई की जांच करें, पूरी तरह खाली यूआरआई की जांच करें, इत्यादि। इसके अलावा, कॉल बनाएं सत्यापन को संभाल लें और आप अपवादों को पकड़ लें। मैं अनुमान लगा रहा हूं कि उस समारोह के लेखकों को पता है कि इसे आपके से अधिक अच्छी तरह से कैसे सत्यापित करें (कोई अपराध इरादा नहीं है!)।

0

जबकि मैं सबसे अच्छा अभ्यास गुरु नहीं हूं, मुझे विश्वास है कि अपवाद अपवाद होना चाहिए (हाँ ...) यह केवल दार्शनिक बात नहीं है, यह भी एक व्यावहारिक बात है। अपवाद हैंडलिंग, ज्यादातर समय, अपवाद कारणों की जांच करने से अधिक प्रदर्शन लागत अधिक है।

क्या मुझे दार्शनिक होना चाहिए, मैं कहूंगा "यदि समस्या के बारे में आप कुछ भी नहीं कर सकते हैं, तो इसे संभालने की कोशिश न करें।" उदाहरण के लिए, यदि आप किसी फ़ाइल में कुछ लिखना चाहते हैं, फ़ाइल की जांच करना, फ़ाइल अनुमतियां इत्यादि परेशानी हो सकती हैं, और आप इसके बारे में ज्यादा कुछ नहीं कर सकते हैं, उदाहरण के लिए, आप नेटवर्क ड्राइव तक नहीं पहुंच सकते हैं। यदि आप अपवाद को पकड़ते हुए कहते हैं, "सत्यापित करें कि फ़ाइल मौजूद है या आपके पास उचित अनुमतियां हैं।", तो आप स्वयं को बहुत परेशानी बचाते हैं।

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