溫馨提示×

C# Task如何進(jìn)行異常處理

c#
小樊
121
2024-09-04 13:19:48
欄目: 編程語言

在C#中,使用Task時,可以通過使用try-catch語句來捕獲和處理異常。當(dāng)在任務(wù)中發(fā)生異常時,該異常將被存儲在任務(wù)對象的Exception屬性中。為了處理這些異常,你需要等待任務(wù)完成,然后檢查Exception屬性。

以下是一個簡單的示例,展示了如何在C#中使用Task進(jìn)行異常處理:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        Task task = Task.Run(() =>
        {
            // 這里是可能引發(fā)異常的代碼
            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}");
        }
    }
}

在這個示例中,我們創(chuàng)建了一個新的任務(wù),該任務(wù)會立即引發(fā)一個InvalidOperationException異常。然后,我們使用await關(guān)鍵字等待任務(wù)完成,并使用try-catch語句捕獲異常。如果捕獲到InvalidOperationException類型的異常,我們將打印出相應(yīng)的錯誤消息。如果捕獲到其他類型的異常,我們也會打印出相應(yīng)的錯誤消息。

請注意,如果任務(wù)已經(jīng)完成(無論是成功還是失?。?,那么在調(diào)用await時不會阻塞線程。因此,在這種情況下,異常處理將立即發(fā)生。

0