AsyncCompletedEventArgs.Error 屬性

定義

取得值,指出非同步作業期間是否發生錯誤。Gets a value indicating which error occurred during an asynchronous operation.

public:
 property Exception ^ Error { Exception ^ get(); };
public Exception Error { get; }
member this.Error : Exception
Public ReadOnly Property Error As Exception

屬性值

如果非同步作業期間發生錯誤,則為 Exception 執行個體,否則為 nullAn Exception instance, if an error occurred during an asynchronous operation; otherwise null.

範例

下列程式碼範例將示範如何使用 AsyncOperation 來追蹤非同步作業的存留期。The following code example demonstrates using an AsyncOperation to track the lifetime of asynchronous operations. 這個程式碼範例是針對 System.ComponentModel.AsyncOperationManager 類別所提供的較大範例的一部分。This code example is part of a larger example provided for the System.ComponentModel.AsyncOperationManager class.

using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Threading;
using System.Windows.Forms;
Imports System.Collections
Imports System.Collections.Specialized
Imports System.ComponentModel
Imports System.Drawing
Imports System.Globalization
Imports System.Threading
Imports System.Windows.Forms
// This event handler updates the ListView control when the
// PrimeNumberCalculator raises the CalculatePrimeCompleted
// event. The ListView item is updated with the appropriate
// outcome of the calculation: Canceled, Error, or result.
private void primeNumberCalculator1_CalculatePrimeCompleted(
    object sender, 
    CalculatePrimeCompletedEventArgs e)
{
    Guid taskId = (Guid)e.UserState;

    if (e.Cancelled)
    {   
        string result = "Canceled";

        ListViewItem lvi = UpdateListViewItem(taskId, result);

        if (lvi != null)
        {
            lvi.BackColor = Color.Pink;
            lvi.Tag = null;
        }
    }
    else if (e.Error != null)
    {
        string result = "Error";

        ListViewItem lvi = UpdateListViewItem(taskId, result);

        if (lvi != null)
        {
            lvi.BackColor = Color.Red;
            lvi.ForeColor = Color.White;
            lvi.Tag = null;
        }
    }
    else
    {   
        bool result = e.IsPrime;

        ListViewItem lvi = UpdateListViewItem(
            taskId, 
            result, 
            e.FirstDivisor);

        if (lvi != null)
        {
            lvi.BackColor = Color.LightGray;
            lvi.Tag = null;
        }
    }
}
' This event handler updates the ListView control when the
' PrimeNumberCalculator raises the CalculatePrimeCompleted
' event. The ListView item is updated with the appropriate
' outcome of the calculation: Canceled, Error, or result.
Private Sub primeNumberCalculator1_CalculatePrimeCompleted( _
    ByVal sender As Object, _
    ByVal e As CalculatePrimeCompletedEventArgs) _
    Handles primeNumberCalculator1.CalculatePrimeCompleted

    Dim taskId As Guid = CType(e.UserState, Guid)

    If e.Cancelled Then
        Dim result As String = "Canceled"

        Dim lvi As ListViewItem = UpdateListViewItem( _
            taskId, _
            result)

        If (lvi IsNot Nothing) Then
            lvi.BackColor = Color.Pink
            lvi.Tag = Nothing
        End If

    ElseIf e.Error IsNot Nothing Then

        Dim result As String = "Error"

        Dim lvi As ListViewItem = UpdateListViewItem( _
            taskId, result)

        If (lvi IsNot Nothing) Then
            lvi.BackColor = Color.Red
            lvi.ForeColor = Color.White
            lvi.Tag = Nothing
        End If
    Else
        Dim result As Boolean = e.IsPrime

        Dim lvi As ListViewItem = UpdateListViewItem( _
            taskId, _
            result, _
            e.FirstDivisor)

        If (lvi IsNot Nothing) Then
            lvi.BackColor = Color.LightGray
            lvi.Tag = Nothing
        End If
    End If

End Sub

備註

如果在非同步作業期間引發例外狀況,類別會將例外狀況指派給 Error 屬性。If an exception is raised during an asynchronous operation, the class will assign the exception to the Error property. 用戶端應用程式的事件處理常式委派應該先檢查 Error 屬性,才能存取衍生自 AsyncCompletedEventArgs之類別中的任何屬性。否則,屬性會引發 TargetInvocationException,其 InnerException 屬性會保存 Error的參考。The client application's event-handler delegate should check the Error property before accessing any properties in a class derived from AsyncCompletedEventArgs; otherwise, the property will raise a TargetInvocationException with its InnerException property holding a reference to Error.

如果作業已取消,Error 屬性的值就會 nullThe value of the Error property is null if the operation was canceled.

給繼承者的注意事項

如果您在衍生類別中提供唯讀屬性,請務必在您的屬性執行中呼叫 RaiseExceptionIfNecessary() 方法。If you provide read-only properties in a derived class, be sure to call the RaiseExceptionIfNecessary() method in your property implementation. 這可防止用戶端因為非同步作業失敗而存取可能不正確屬性。This prevents clients from accessing properties that are potentially not valid due to a failure in the asynchronous operation.

適用於

另請參閱