未抛出异常
本文关键字:抛出异常 | 更新日期: 2023-09-27 18:08:48
try
{
WebRequest request = WebRequest.Create("http://facebook.com");
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
MessageBox.Show("I am here!"); // Not run
}
catch (Exception ex)
{
MessageBox.Show("Error Occurred!"); //Not run!
}
在我的国家,facebook是过滤的,当我运行这段代码时,不会抛出异常,程序也不会显示消息"我在这里!";发生了什么事?
我想使用这段代码在timer_tick每1分钟和更新ui标签与活着的状态。你有别的办法吗?
我猜你的timer_tick()的间隔值小于web请求的默认超时值,然后下一个计时器轮在当前轮完成之前执行。因此,为您的请求使用超时,最好使用任务,不要在运行计时器时冻结ui。
Task task = Task.Factory.StartNew(() =>
{
WebRequest request = WebRequest.Create("http://facebook.com");
request.Timeout = 5000;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
});
// Run this code after successfully completing the task...
task.ContinueWith(t =>
{
websiteIsAvailable = true;
//Some code...
}, TaskContinuationOptions.OnlyOnRanToCompletion);
// Run this code after task Failure...
task.ContinueWith(t =>
{
websiteIsAvailable = false;
//Some code...
}, TaskContinuationOptions.OnlyOnFaulted);