温馨提示×

C# Task如何进行异常处理

c#
小樊
88
2024-09-04 13:19:48
栏目: 编程语言

在C#中,使用Task时,可以通过使用try-catch语句来捕获和处理异常。当在任务中发生异常时,该异常将被存储在任务对象的Exception属性中。为了处理这些异常,你需要等待任务完成,然后检查Exception属性。

以下是一个简单的示例,展示了如何在C#中使用Task进行异常处理:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        Task task = Task.Run(() =>
        {
            // 这里是可能引发异常的代码
            throw new InvalidOperationException("An error occurred!");
        });

        try
        {
            await task;
        }
        catch (InvalidOperationException ex)
        {
            Console.WriteLine($"Caught exception: {ex.Message}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Caught exception: {ex.Message}");
        }
    }
}

在这个示例中,我们创建了一个新的任务,该任务会立即引发一个InvalidOperationException异常。然后,我们使用await关键字等待任务完成,并使用try-catch语句捕获异常。如果捕获到InvalidOperationException类型的异常,我们将打印出相应的错误消息。如果捕获到其他类型的异常,我们也会打印出相应的错误消息。

请注意,如果任务已经完成(无论是成功还是失败),那么在调用await时不会阻塞线程。因此,在这种情况下,异常处理将立即发生。

0