在C#中,使用WebClient類進行網(wǎng)絡(luò)請求時,可能會遇到一些異常,如網(wǎng)絡(luò)連接問題、DNS解析問題或服務(wù)器錯誤等。為了處理這些異常,可以使用try-catch語句來捕獲異常并進行相應(yīng)的處理。以下是一個簡單的示例:
using System;
using System.Net;
using System.Net.WebClient;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
try
{
using (WebClient webClient = new WebClient())
{
string url = "https://api.example.com/data";
string result = await webClient.DownloadStringTaskAsync(url);
Console.WriteLine(result);
}
}
catch (WebException webException)
{
Console.WriteLine("WebException occurred: " + webException.Message);
if (webException.Status == WebExceptionStatus.NameResolutionFailure)
{
Console.WriteLine("DNS解析失敗");
}
else if (webException.Status == WebExceptionStatus.Timeout)
{
Console.WriteLine("請求超時");
}
else if (webException.Status == WebExceptionStatus.ProtocolError)
{
Console.WriteLine("服務(wù)器錯誤");
}
}
catch (Exception ex)
{
Console.WriteLine("其他異常: " + ex.Message);
}
}
}
在這個示例中,我們使用try-catch語句捕獲了可能發(fā)生的異常。當(dāng)發(fā)生WebException時,我們可以根據(jù)異常的狀態(tài)碼來判斷具體的錯誤類型,并進行相應(yīng)的處理。此外,我們還捕獲了其他可能的異常,以確保程序的健壯性。