我正在尝试从任务中实现异常处理,但我似乎无法做到。我找到了一些模式示例,但无论我尝试什么,我总是似乎从任务本身中得到未处理的异常。我一定漏掉了什么,但我看不出来。非常感谢任何帮助。
我尝试过在MSDN上找到的一个示例,但对我无效:
我尝试过在MSDN上找到的一个示例,但对我无效:
https://msdn.microsoft.com/en-us/library/dd997415(v=vs.110).aspx
我遵循了这个问题的答案,但当我在Visual Studio中运行修复程序时,它仍然会抱怨未处理的异常:
这是我最初编写的代码:
static void Main(string[] args)
{
TestAsync().ContinueWith(t =>
{
Console.WriteLine(t.Exception.ToString());
}, TaskContinuationOptions.OnlyOnFaulted);
Console.ReadKey();
}
static async Task<IEnumerable<string>> TestAsync()
{
IEnumerable<string> list = null;
try
{
list = await TestTask();
}
catch (Exception)
{
Console.WriteLine("Caught!");
}
return list;
}
static Task<IEnumerable<string>> TestTask()
{
var task = new Task<IEnumerable<string>>(() =>
{
throw new AggregateException("This is a test");
});
task.Start();
return task;
}