异步Task捕获异常

调用方法一:这边捕获到的异常,不能重新抛出

Task.Factory.StartNew(() =>
{
  //业务逻辑
}).ContinueWith(task =>
{
  if (task.IsCompleted && !task.IsFaulted)
  {
    //没有出现异常
  }
  else
  {
    //出现异常
    var exection = task.Exception;
    Log(exection);
  }
});

调用方法二:通用的捕获异常

try
{
await Task.Factory.StartNew(() =>
{
  //业务逻辑
})
}
catch (Exception ex)
{
_logger.LogError("定时器取消订单挂号异常:" + ex.Message + ",详细信息:" + ex.ToString());
}

 
原文地址:https://www.cnblogs.com/jeffhong99/p/11765851.html