[英]C# Unhandled Exception using try catch block
我得到一個System.Net.WebException
說:
遠程服務器返回錯誤:(403)禁止。
這是我所期望的,因為將無效的標頭隨http請求傳遞進來。 但是,我的代碼似乎並沒有捕獲我所期望的異常。
這是代碼:
private void callback(IAsyncResult result)
{
Debug.WriteLine("Callback");
HttpWebResponse response = null;
try
{
response = (result.AsyncState as HttpWebRequest).EndGetResponse(result)
as HttpWebResponse;
}
catch (WebException e)
{
Debug.WriteLine("Exception: " + e);
}
catch (Exception e)
{
Debug.WriteLine("Unknown exception: " + e);
}
}
為什么未捕獲到異常?
在這里看看。
可能您應該執行以下操作:
Task<WebResponse> task = Task.Factory.FromAsync(
request.BeginGetResponse,
asyncResult => { callback(asyncResult); },
(object)null);
return task.ContinueWith(t =>
{
if (t.IsFaulted)
{
//handle error
Exception firstException = t.Exception.InnerExceptions.First();
}
else
{
return FinishWebRequest(t.Result);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.