【问题标题】:C# Handling Response Exception within ContinueWith Task (WinForms)C# 处理 ContinueWith 任务中的响应异常 (WinForms)
【发布时间】:2018-03-20 23:40:30
【问题描述】:

我希望每个人都做得很好。

因此,我们的任务是使用多线程方法来运行 GetResponse 方法。

WebResponse response = await Task.Run(() => request.GetResponse())

这与我的程序的其余部分完美配合。

现在,当我输入一个不存在的网址并出现异常时,就会出现问题。

我一直在尝试找出一种捕捉此异常并将其添加到标签的好方法,但我一直无法这样做。

WebResponse response = await Task.Run(() => request.GetResponse())
            .ContinueWith(
            ex =>
            {
                if (ex.Exception != null)
                    ex.Exception.Handle(x =>
                    {
                        Label1.Text = (x.Response as HttpWebResponse).StatusCode;
                        return true;
                    });
            });

在这段代码 sn-p 中,我不知道如何捕获抛出的异常。 (异常可能是 404 错误或其他)

任何帮助将不胜感激。 谢谢!

【问题讨论】:

  • 将 await 包装在 try catch 中,然后根据需要处理异常。
  • awaitContinueWith 组合背后的想法是什么?为什么不只是等待?或者更好的是,使用带有本机异步/等待支持的 HttpClient。

标签: c# winforms exception httpwebresponse


【解决方案1】:

如下所示获取您的例外情况

 List<Exception> Exceptions = ex.Exception.InnerExceptions.ToList();

并遍历它们以查找任务异常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多