2011-09-16 17 views
12

WebException Hatada Nasıl Hata Numara Alabilirsiniz?WebException Hatası Hata numarasını alın

try 
{ 
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("site"); 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    Stream stream = response.GetResponseStream(); 
    int i = stream.ReadByte(); 
} 
catch (WebException e) 
{ 
    //How To Get Error number in WebException Error? 
} 

cevap

24

Bunu olduğuna emin olmak için bir test çalıştırmak isteyeceksiniz bir ProtocolError:

Al Hata Sayısı
if (e.Status == WebExceptionStatus.ProtocolError) 
{ 
    Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode); 
    Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription); 
} 
+0

olsun Nasıl ** HTTP Alt Durum ** değeri? Örneğin, _404.13 İçerik Uzunluğu Çok Büyük_ Referans: http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits – Kiquenet

0

Bunu yapamazsınız, çünkü WebException(s) hata numaralarına sahip değildir. Kendi hata numaralarınızı tanımlayabilirsiniz, eğer yapmak istediğiniz/yapmanız gerekiyorsa.

Here's the documentation Sen vs vs Durum, Mesaj, StackTrace, Sen mesajı ayrıştırmak deneyebilirsiniz

0

alabilirsiniz, ama bir hata sayısı her zaman yoktur. Örneğin bir zaman aşımı, bir HTTP hata koduyla sonuçlanmaz.

6

:

catch(System.Net.WebException e) 
{ 
    int errorNumber = (int)e.Status; 
} 
İlgili konular