2013-03-25 35 views
3
class XWebClient : WebClient 
{ 
    protected override WebRequest GetWebRequest(Uri Url) 
    { 
     var Request = base.GetWebRequest(Url); 
     ........... 
     return Request; 
    } 
} 

使用:的try-catch不工作

try 
{ 
    XWebClient Client = new XWebClient(); 
    Client.DownloadString(new Uri("badurl:100500")); 
} 
catch 
{ 
    MessageBox.Show("exception"); 
} 

我希望得到一個消息,但我得到一個未處理的異常。我究竟做錯了什麼?


例外: System.NotSupportedexception

消息: 的URI前綴無法識別

跟蹤:

System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) 
    System.Net.WebRequest.Create(Uri requestUri) 
    System.Net.WebClient.GetWebRequest(Uri address) 
    XWebClient.GetWebRequest(Uri Url) в [path]\XWebClient.cs:строка 28 
    System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request) 
+8

**是什麼錯誤說**? – SLaks 2013-03-25 02:10:00

+0

@Inisheer:他將不得不讓代碼在首位編譯。 – 2013-03-25 02:18:42

+0

@EdS。啊,真的。 – Inisheer 2013-03-25 02:19:16

回答

5

這聽起來像你對我是下運行它調試器啓用「中斷所有受管理的異常」。如果是這種情況,調試器將在處理程序運行之前拋出異常的那一行中斷。您的處理程序仍在工作,調試器只是讓您事先檢查錯誤。