मैं दो अलग अलग WebException
की ठीक से संभाल करने की कोशिश कर रहा हूँ।हैंडलिंग दो WebException को ठीक से
मूल रूप से वे बुला WebClient.DownloadFile(string address, string fileName)
AFAIK के बाद नियंत्रित किया जाता है, अब तक वहाँ दो मैं संभाल करने के लिए कर रहे हैं, दोनों WebException
की:
- दूरदराज के नाम हल नहीं किया जा सकता है (यानी कोई नेटवर्क कनेक्टिविटी फ़ाइल डाउनलोड करने के लिए)
- (404 सर्वर तक पहुँचने के लिए) फ़ाइल नहीं nound (यानी फ़ाइल सर्वर पर मौजूद नहीं है)
और भी हो सकता है लेकिन यह अब तक मुझे सबसे महत्वपूर्ण मिला है।
तो मैं कैसे ठीक से इस संभाल चाहिए, क्योंकि वे दोनों WebException
के हैं, लेकिन मैं अलग तरह से ऊपर प्रत्येक मामले को संभालने के लिए चाहते हैं।
यह वही है मैं अब तक है:
try
{
using (var client = new WebClient())
{
client.DownloadFile("...");
}
}
catch(InvalidOperationException ioEx)
{
if (ioEx is WebException)
{
if (ioEx.Message.Contains("404")
{
//handle 404
}
if (ioEx.Message.Contains("remote name could not")
{
//handle file doesn't exist
}
}
}
आप मुझे संदेश जाँच कर रहा हूँ देखने के लिए यह है WebException किस प्रकार देख सकते हैं। मुझे लगता है कि ऐसा करने के लिए एक बेहतर या अधिक सटीक तरीका है?
धन्यवाद
उत्तर का अनुमान अपवाद की स्थिति की जांच के बजाय वेब अपवाद का उपयोग करने में, '(यदि wEx.Status == WebExceptionStatus.Something) {// संभाल} (wEx.Status अगर == WebExceptionStatus.SomethingElse के रूप में की तर्ज पर है) {// हैंडल कि} ' – baron