2011-06-19 145 views
2

這是我的代碼:剿錯誤「主機名無法解析」

string Url = "http://illution.dk/"; 
WebClient Http = new WebClient(); 
Http.DownloadStringAsync(new Uri(Url)); 
Http.DownloadStringCompleted += new DownloadStringCompletedEventHandler(GetModelTypeResponse); 

如果我的機器上運行這個沒有互聯網連接的錯誤將被拋出。 「主機名無法解析」

有沒有什麼辦法可以刪除這條錯誤信息?或者檢查是否沒有互聯網連接?

編輯1

try 
{ 
ComputerInfo ComputerInfoComp = new ComputerInfo(); 
string Url = "http://illution.dk/" 
WebClient Http = new WebClient(); 
Http.DownloadStringAsync(new Uri(Url)); 
Http.DownloadStringCompleted += new   DownloadStringCompletedEventHandler(GetModelTypeResponse); 
ComputerInfoComp = null; 
} 
catch (System.Net.WebException e) 
{ 
// 
} 

回答

2

在您的GetModelTypeResponse處理程序方法中檢查e.Error。如果e.ErrorWebException類型,則檢查webException.Status值。如果「主機名無法解析」,則值爲WebExceptionStatus.NameResolutionFailure例外

public void GetModelTypeResponse(object sender, DownloadStringCompletedEventArgs e) 
{ 
    var webException = e.Error as WebException; 
    if (webException != null && 
     webException.Status == WebExceptionStatus.NameResolutionFailure) 
    { 
     // log 
     return; // ignore 
    } 

    // proceed 
    .. 
} 
+0

謝謝,它做到了! – Fredefl

0

將代碼放在try ... catch塊中。 Google exceptions瞭解更多信息。

+0

已經嘗試過...... – Fredefl

+0

@Fredefl:然後發佈您的代碼!有用。我不知道你做錯了什麼,因爲我看不到你的代碼。 –