在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
時不會阻塞線程。因此,在這種情況下,異常處理將立即發生。