通过浏览器调用以下代码,如果发生异常,则“Try Catch”永远不会捕获异常,而是向屏幕报告异常。我试过没有调试运行以及关闭CLR错误。任何建议将不胜感激:
public string GetUrl(string url)
/*Grab remote page */
{
string target = string.Empty;
HttpWebRequest httpWebRequest = null;
HttpWebResponse response = null;
StreamReader streamReader = null;
try
{
httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
response = (HttpWebResponse)httpWebRequest.GetResponse();
streamReader = new StreamReader(response.GetResponseStream(), true);
target = streamReader.ReadToEnd();
}
catch (WebException e)
{
Console.WriteLine("Error:GetUrl()");
Console.WriteLine("\n{0}", e.Message);
Console.WriteLine("\n{0}", e.Status);
}
finally
{
streamReader.Close();
response.Close();
}
return target;
}
答案 0 :(得分:1)
您只是捕获webexceptions,没有捕获任何其他异常。
可以抛出更多例外情况,请点击此处:
https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.getresponse%28v=vs.110%29.aspx
答案 1 :(得分:0)
在finally块和陷阱基础异常之前再添加一个catch块。它将捕获发生的所有类型的错误,而不是在早期的catch块中捕获。