PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [01/02/2006] Le Saviez-Vous ?
[01/02/2006] Le Saviez-Vous ?
Débuté par supportgratuit, 01 fév. 2006 19:07 - Aucune réponse
Posté le 01 février 2006 - 19:07
Bonjour,

WinDev 10, WebDev 10, WinDev Mobile 10 permettent de trouver et de signaler les erreurs potentielles grâce au concept de programmation défensive.
Pour cela, deux nouvelles fonctions apparaissent :

- "dbgActiveAssertion" qui permet d'activer ou désactiver la programmation défensive. Par défaut la programmation défensive est active en "mode test" et désactivée en exécution de façon à obtenir des performances optimales en exécution normale.

- "dbgAssertion" qui permet de tester une condition et d'afficher un message si la condition n'est pas vérifiée.
La condition testée par "dbgAssertion" doit être un booléen : variable de type booléen, opération de comparaison, procédure ou fonction qui renvoie un booléen.

Par défaut la condition est évaluée, et le message éventuellement affiché, uniquement en mode test.
En exécution de l'application, la condition n'est pas évaluée. Ainsi même si l'évaluation de la condition est relativement longue cela ne pénalise pas l'application chez le client. Aucun message d'assertion ne peut s'afficher dans une application déployée.
Dans certains cas de débogage complexe, il est toutefois possible de forcer l'activation des assertions en exécution de l'application grâce à la fonction dbgActiveAssertion.

Exemples :

1 - Vérification avec une assertion uniquement en mode "debug" :

//ValeurCherchée a été passée en paramètre, elle existe normalement dans le fichier
//On se positionne sur l'enregistrement
HLitRecherchePremier(NomFichier,NomRub,ValeurCherchée)
//En mode "debug" on vérifie si on a bien trouvé l'enregistrement
dbgAssertion(HTrouve(NomFichier), ChaîneConstruit("L'enregistrement %1 du fichier NomFichier n'a pas été trouvé",ValeurCherchée))
..... (suite du code)


2 - Vérification dans tous les cas avec en plus une assertion en mode "debug" :

//ValeurCherchée a été passée en paramètre, elle existe normalement dans le fichier
//On se positionne sur l'enregistrement
HLitRecherchePremier(NomFichier,NomRub,ValeurCherchée)
//On vérifie quand même qu'un enregistrement est bien trouvé (dans tous les cas mode "normal" ou "debug")
SI PAS HTrouve(NomFichier) ALORS
//En mode "debug" on affiche un message pour indiquer qu'il y a un problème
dbgAssertion(Faux, ChaîneConstruit("L'enregistrement %1 du fichier NomFichier n'a pas été trouvé",ValeurCherchée))
//On sécurise le code en créant un enregistrement s'il n'a pas été trouvé
HRaz(NomFichier)
NomFichier.NomRub=ValeurCherchée
HAjoute(NomFichier)
FIN
..... (suite du code)

Vous trouverez dans l'aide en ligne toutes les informations nécessaires à l'utilisation de ces fonctions.


---
Cordialement,
Le Support Technique Gratuit