Je suis en train de faire petit projet passe-temps en C#, une langue que je ne sais pas bien, et ont trébuché sur les éléments suivants:Comment distinguer les différents types d'exceptions dans le gestionnaire d'événements BackgroundWorker.RunWorkerCompleted
Supposons que vous ayez une opération asynchrone implémenté en utilisant BackgroundWorker. Maintenant, s'il existe une exception, l'événement RunWorkerCompleted sera déclenché et RunWorkerCompletedEventArgs.Error sera non nul.
La méthode canonique est-elle la suivante pour gérer différents types d'exception? (Ici, tous les types d'exception sont frères et sœurs héritage WRT)
if (e.Error != null)
{
FirstKindOfException e1 = e as OneKindOfException;
SecondKindOfException e2 = e as SecondKindOfException;
...
LastKindOfException en = e as LastKindOfException;
if (e1 != null)
{
...
}
else if (e2 != null)
{
...
}
...
else
{
...
}
}
Il fonctionne, mais ... il ne se sent pas droit.
À droite, mais dans le code e1 et e2 doivent tous deux être e.Error. Rollback si vous n'êtes pas d'accord. –
@Henk actully Je voulais juste "e" mais vous avez raison - c'était incorrect comme écrit. –