Dans un projet, il est souvent difficile de gérer les erreurs rencontrées dans un traitement. Doit-on afficher l'erreur, le faire remonter au traitement précédent, attendre la fin de traitement pour afficher l'erreur rencontrée, etc ?
En fait, cela dépend de votre traitement, de l'importance de la fonction en erreur, etc…
Un moyen de centraliser ces erreurs peut être de créer une énumération avec la liste des erreurs que vous souhaitez gérer dans le code du projet ou de la classe ou plus généralement de l'objet concerné :
Erreurs est une Enumération MailEnvoi = "Echec d'envoi de l'email" SmtpConnecte = "Echec de la connexion SMTP" AdresseVide = "Adresse email inconnue" DocDejaEnvoye = "Document déjà envoyé" Ok = "OK" FIN
Ensuite dans votre code vous pouvez renvoyer la valeur correspondante. Plus d'hésitaion entre renvoyer Vrai ou Faux, -1, une chaine avec un libellé d'erreur, etc… Vous avez même la possibilité de gérer un tableau de résultats dans le cadre d'une boucle sur des traitements indépendants.
tabRetourEnvoi est un tableau de cLoyer.Erreurs bUneErreur est un booléen
POUR TOUT pclUnLoyer de gtabLoyersMois tabRetourEnvoi.Ajoute() tabRetourEnvoi[tabRetourEnvoi..Occurrence] = pclUnLoyer.EnvoiDonneesParEmail(Quittance) FIN
POUR i = 1 _À_ tabRetourEnvoi..Occurrence SI tabRetourEnvoi[i] <> cLoyer.Ok ALORS bUneErreur=Vrai HLitRecherchePremier(APPARTEMENT,IDAPPARTEMENT,gtabLoyersMois[i].nIDAppartement) Erreur("Le loyer de l'appartement,"+APPARTEMENT.NOM+" n'a pas été envoyé."+RC+tabRetourEnvoi[i]..Valeur) FIN FIN SI PAS bUneErreur ALORS Info("Envois terminés.")
|