温馨提示×

C# Promise如何处理异常

c#
小樊
85
2024-07-22 21:37:03
栏目: 编程语言

在C#中,Promise通常指的是Task或Task对象,用于异步操作的处理。当异步操作抛出异常时,可以通过使用try/catch块或ContinueWith方法来处理异常。

以下是一些处理异常的方法:

  1. 使用try/catch块:
try
{
    Task<int> task = Task.Run(() =>
    {
        throw new Exception("An error occurred");
        return 42;
    });

    int result = task.Result;
}
catch (Exception ex)
{
    Console.WriteLine("Exception caught: " + ex.Message);
}
  1. 使用ContinueWith方法:
Task<int> task = Task.Run(() =>
{
    throw new Exception("An error occurred");
    return 42;
});

task.ContinueWith(t =>
{
    Console.WriteLine("Exception caught: " + t.Exception.InnerException.Message);
}, TaskContinuationOptions.OnlyOnFaulted);

在上面的例子中,我们创建了一个Task对象,并在异步操作中抛出了一个异常。然后我们使用try/catch块和ContinueWith方法来处理异常。

需要注意的是,在使用ContinueWith方法时,需要将TaskContinuationOptions参数设置为OnlyOnFaulted,以便只在异步操作失败时执行ContinueWith方法中的代码。

总的来说,处理C# Promise(Task)的异常可以通过try/catch块或ContinueWith方法来实现。在处理异常时,需要注意异常的类型和在何时执行异常处理的代码。

0