Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het bieden van foutafhandeling in een AsyncCodeActivity omvat het routeren van de fout via het callbacksysteem van de activiteit. In dit onderwerp wordt beschreven hoe u een fout die gegenereerd wordt in een asynchrone bewerking terug naar de host kunt sturen, met behulp van het voorbeeld van de SendMail-activiteit.
Retourneert een fout die is opgetreden in een asynchrone activiteit terug naar de host
Het routeren van een fout in een asynchrone bewerking terug naar de host in het voorbeeld van sendMail-activiteit omvat de volgende stappen:
Voeg een uitzonderingseigenschap toe aan de
SendMailAsyncResultklasse.Kopieer de gegooide fout naar die eigenschap in de
SendCompletedevent handler.Gooi de uitzondering in de
EndExecutegebeurtenis-handler.
De resulterende code is als volgt.
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;
}
}