温馨提示×

c#异步调用如何处理异常

c#
小樊
82
2024-11-30 23:07:53
栏目: 编程语言

在C#中,异步方法中的异常处理与同步方法略有不同。当异步方法抛出异常时,它不会自动传播到调用者那里。为了处理这些异常,你需要使用asyncawait关键字,并使用try-catch块来捕获异常。下面是一个示例:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        try
        {
            await CallAsyncMethod();
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }

    static async Task CallAsyncMethod()
    {
        await Task.Delay(1000); // 模拟异步操作
        throw new InvalidOperationException("An error occurred in the async method.");
    }
}

在这个示例中,CallAsyncMethod是一个异步方法,它抛出了一个异常。在Main方法中,我们使用try-catch块来捕获并处理这个异常。当CallAsyncMethod抛出异常时,它会被catch块捕获,并输出错误信息。

0