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é :

 

 

// Enumération des erreurs possibles
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
// Envoi des données
POUR TOUT pclUnLoyer de gtabLoyersMois
tabRetourEnvoi.Ajoute()
tabRetourEnvoi[tabRetourEnvoi..Occurrence] = pclUnLoyer.EnvoiDonneesParEmail(Quittance)
FIN
// Analyse des résultats
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.")

 

 

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée