2011-09-17 11 views
5

मुझे गेट रेस्पॉन्स कॉल पर वेबएक्सप्शन का इलाज करने का तरीका मिला है, और इस बारे में परेशान है कि वेबएक्सप्शन प्रतिक्रिया से प्रतिक्रिया कैसे निकाली जा सकती है। दूसरी पहेली यह है कि शून्य प्रतिक्रिया को फेंक दिया जाता है; कोई उपाय?GetResponse WebException फेंकता है और ex.Response शून्य है

HttpWebResponse response = null; 
try 
{ 
    response = (HttpWebResponse) request.GetResponse(); 
} 
catch (WebException ex) 
{ 
    response = (HttpWebResponse)ex.Response; 
    if (null == response) 
    { 
     throw; 
    } 
} 

उत्तर

5

प्रतिक्रिया null कभी नहीं होना चाहिए - इस मामले में लेखक कह रहा है WebException इस अपवाद संचालक भीतर संभाला नहीं जा सकता और यह सिर्फ ऊपर प्रचारित कर रहा है।

अभी भी इस अपवाद हैंडलिंग आदर्श नहीं है - आप शायद जानना चाहते क्यों एक अपवाद उत्पन्न हुई, यानी .:

catch (WebException ex) 
{ 
    if (ex.Status == WebExceptionStatus.ProtocolError && ex.Response != null) 
    { 
     var resp = (HttpWebResponse)ex.Response; 
     if (resp.StatusCode == HttpStatusCode.NotFound) // HTTP 404 
     { 
      //file not found, consider handled 
      return false; 
     } 
    } 
    //throw any other exception - this should not occur 
    throw; 
} 
संबंधित मुद्दे