Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du anger felhantering i en AsyncCodeActivity innebär det att du dirigerar felet via aktivitetens återanropssystem. Det här avsnittet beskriver hur du hämtar ett fel som genereras i en asynkron åtgärd tillbaka till värden, med hjälp av SendMail-aktivitetsprovet.
Returnera ett fel som genereras i en asynkron aktivitet tillbaka till värden
Routning av ett fel i en asynkron operation tillbaka till värden i SendMail-aktivitetsexemplet omfattar följande steg:
Lägg till en undantagsegenskap i
SendMailAsyncResultklassen.Kopiera det utslängda felet till den egenskapen i
SendCompletedhändelsehanteraren.Utlöser undantaget i
EndExecutehändelsehanteraren.
Den resulterande koden är följande.
class SendMailAsyncResult : IAsyncResult
{
…
public Exception Error { get; set; }
…
void SendCompleted(object sender, AsyncCompletedEventArgs e)
{
Error = e.Error;
this.asyncWaitHandle.Set();
callback(this);
}
}
public sealed class SendMail: AsyncCodeActivity
{
…
protected override void EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
{
SendMailAsyncResult sendMailResult = result as SendMailAsyncResult;
if (sendMailResult != null && sendMailResult.Error != null)
throw sendMailResult.Error;
}
}