我已经执行了下面的异步方法
System.Threading.Tasks.Task.Factory.StartNew(() => AddAttachment(information.Subject,
information.DocumentId.ToString(),
information.Sender,list.Name));
如何处理方法AddAttachment()
中生成的异常?
答案 0 :(得分:4)
您可以创建一个延续任务来检查您使用StartNew
创建的那个:
Task outer = System.Threading.Tasks.Task.Factory.StartNew(() => AddAttachment(information.Subject, information.DocumentId.ToString(), information.Sender,list.Name))
.ContinueWith(task => {
if(task.IsFaulted)
{
AggregateException ex = task.Exception;
//handle exception
}
});
答案 1 :(得分:1)
最简单的方法是创建一个延续并使用OnlyOnFaulted
选项:
Task.Factory.StartNew(() => AddAttachment(information.Subject, information.DocumentId.ToString(), information.Sender,list.Name))
.ContinueWith(t => HandleException(t.Exception),
TaskContinuationOptions.OnlyOnFaulted);
这样,只有在原始任务中抛出异常时才会调用continuation。
答案 2 :(得分:0)
Task.Exception属性将包含异常异常,有关详细信息,请查看this
var task = Task.Factory.StartNew(...
...
task.Exception