[英]System.Net.WebException not intercepted on Windows Phone 8
[英]Windows Phone 8 connection check WebClient throws dreaded System.Net.WebException
我正在編寫一個旨在在線和離線工作的Windows Phone 8應用程序。 要做到這一點,它需要能夠檢查互聯網連接。 如果沒有連接,或者有連接,這很好,但如果用戶連接到wifi熱點但未經過身份驗證,那么我需要返回“無連接”狀態。 但是,即使使用try catch,使用WebClient或HttpWebRequest也無法捕獲System.Net.WebException錯誤。 我已經搜遍了所有的解決方案,但似乎沒有工作 - 任何幫助將不勝感激。
這是我的連接檢查代碼:
public async Task<bool> tskbooCheckConnectionSimpleNoQueue()
{
bool booHasConnection = false;
bool isNetwork = NetworkInterface.GetIsNetworkAvailable();
if (!isNetwork)
{
booHasConnection = false;
IsolatedStorageSettings.ApplicationSettings["booHasConnection"] = false;
return booHasConnection;
}
else
{
//actually check connection
WebClient wcConnectionCheck = new WebClient();
string strData = "";
string strConnectionCheck = "https://urltocheckconnection.com/connectioncheckmethod";
try
{
strData = await wcConnectionCheck.DownloadStringTaskAsync(new Uri(strConnectionCheck)); //exception thrown here
if (strData.ToString().Contains("success"))
{
booHasConnection = true;
IsolatedStorageSettings.ApplicationSettings["booHasConnection"] = true;
return booHasConnection;
}
else
{
booHasConnection = false;
IsolatedStorageSettings.ApplicationSettings["booHasConnection"] = false;
return booHasConnection;
}
}
catch (WebException ex)
{
booHasConnection = false;
IsolatedStorageSettings.ApplicationSettings["booHasConnection"] = false;
return booHasConnection;
}
}
}
聽起來你已經開始處理異常處理。
在visual studio中,單擊“調試”菜單並選擇“例外”。
在“Common Language Runtime Exceptions”項下,取消選中“Thrown”列。
您的調試器將不再中斷,並將捕獲異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.