static void Main(string[] args)
{
var t = Task.Factory.StartNew(() =>
{
Console.WriteLine("1");
Console.WriteLine("2");
try
{
Console.WriteLine("3");
string str = tt();
Console.WriteLine(str);
Console.WriteLine("4");
}
catch (Exception ex)
{
Console.WriteLine("报错显示:{0}", ex);
}
Console.WriteLine("5");
Console.WriteLine("6");
});
// tt方法报错后,进入catch中后,在没有ContinueWith时,下边的5、6不会执行.
// 如果存在ContinueWith,则有所有流程正常执行
t.ContinueWith(x =>
{
Console.WriteLine("关闭进程后执行1");
});
Console.WriteLine("关闭进程后执行2");
Console.WriteLine("关闭进程后执行3");
Console.WriteLine("完成");
Console.ReadLine();
}
public static string tt()
{
throw new IndexOutOfRangeException();
}
task中出现抛出异常后,后续流程不执行
添加ContinueWith后,所有流程正常执行
本文探讨了在C#中如何处理Task抛出的异常,并通过使用ContinueWith方法确保即使出现异常也能执行后续操作。文章提供了具体的代码示例来说明这一点。

5655

被折叠的 条评论
为什么被折叠?



