c# - Why is code in a try block separate from the rest of a method? -
मेरी समस्या कुछ इस तरह से हो जाती है:
HttpWebRequest अनुरोध; {अनुरोध = {HttpWebRequest} WebRequest.Create (url) का प्रयास करें; } पकड़ (UriFormatException) {statusLabel.Text = "आपके द्वारा दर्ज पता गलत था, कृपया इसे ठीक करें।"; StatusLabel.ForeColor = Color.Red; } HttpWebResponse प्रतिक्रिया = (HttpWebResponse) request.GetResponse ();
इस त्रुटि से मुझे यह मिलेगा कि अनुरोध
को एक मूल्य नहीं दिया गया है। जाहिर है यह इसलिए है क्योंकि अनुरोध के मान को कोशिश ब्लॉक में दिया गया है।
इसका कारण मुझे भ्रमित करता है क्योंकि अन्य भाषाओं में मैंने इसका उपयोग किया है, क्या मैं इस गलत तरीके से जा रहा हूं? क्या मैं अलग तरीके से अलग (मैं इसके लिए शब्द भूल सकता हूँ, संभवत: इनकैप्सली?) बाकी के कोड से। आप त्रुटि का गलतफहमी कर रहे हैं। विशेष रूप से, यदि आप उसे निर्दिष्ट करके ठीक कर सकते हैं वैसे, आपको यहां try / code> ब्लॉक में कोड
WebRequest
किसी एक को फेंकने के बाद अपवाद मानने के बाद क्या मुझे कोशिश ब्लॉक में कोड डुप्लिकेट करना चाहिए? अनुरोध
चर सभी कोड के दायरे में है। हालांकि, बाहर की कोशिश करें
ब्लॉक के बाहर, यह मान की गारंटी नहीं है, और सी # संकलक आपको एक चर का उपयोग करने की अनुमति नहीं देगा, जब तक कि यह निश्चित न हो कि वेरिएबल को पहले से ही असाइन किया गया है। WebRequest.Create
एक अपवाद फेंकता है, अनुरोध
को असाइन नहीं किया जाएगा। कैच
ब्लॉक के बाहर एक मान, इस तरह:
एचटीटीपी वेबबेट अनुरोध = शून्य;
पकड़
ब्लॉक का उपयोग नहीं करना चाहिए। इसके बजाय, आपको कॉल करना चाहिए।
Comments
Post a Comment