在异步方法中抛出新异常

Throw new Exception in asyc method

如何在异步方法中正确抛出异常?

public async void Method()
{
  if(value)
    throw new Exception("Error!");
}

就像那样,但是 return 一个 Task。当你await Task时,它会在调用者中抛出异常。

public async Task DoSomethingAsync()
{
    throw new Exception("Error!");
}

await DoSomethingAsync(); // throws

您几乎不想使用 async void,因为您将无法等待它完成、获取 return 值或抛出任何异常。