在asyc方法中引发新的异常

时间:2018-07-02 15:27:59

标签: c# asynchronous exception methods throw

如何正确地在异步方法中引发异常?

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

1 个答案:

答案 0 :(得分:2)

类似于,但是返回Taskawait Task时,它将在调用者中引发异常。

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

await DoSomethingAsync(); // throws

您几乎永远不想使用async void,因为您将无法等待它完成,获取返回值或引发任何异常。