|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Débuté par jerbihoussem, 30 jan. 2006 23:28 - 3 réponses |
| |
| | | |
|
| |
Posté le 30 janvier 2006 - 23:28 |
Bonjour, J'ai un problème concernant les gestions des exceptions. J'ai mis:
QUAND EXCEPTION DANS HAJOUTE(Nom_fich) FAIRE Code de traitement de l'exception FIN et je fais expret à provoquer une erreur de doublon mais le Code de traitement de l'exception ne se déclenche pas
Merci. |
| |
| |
| | | |
|
| | |
| |
Posté le 01 février 2006 - 10:49 |
normal ce n'est pas un bug, il faut faire
SI pas hAjoute() FIN
ou
HAjoute() Si HerreurDoublon() FIN
Houssem avait prétendu :
Bonjour, J'ai un problème concernant les gestions des exceptions. J'ai mis:
QUAND EXCEPTION DANS HAJOUTE(Nom_fich) FAIRE Code de traitement de l'exception FIN et je fais expret à provoquer une erreur de doublon mais le Code de traitement de l'exception ne se déclenche pas
Merci.
-- Pierre BOUSQUET
" Ne me dites pas que ce problème est difficile. S'il n'était pas difficile, ce ne serait pas un problème. " |
| |
| |
| | | |
|
| | |
| |
Posté le 01 février 2006 - 11:21 |
Penser à une gestion centralisée des exceptions: définir une procédure globale: PROCEDURE SurAutreErreur()
SELON HErreur(hErrEnCours) CAS 70015 Erreur("Erreur d'integrité "+ErreurInfo()) RENVOYER opFinTraitement CAS 70100 Erreur("erreur de blocage"+ErreurInfo()) RENVOYER opFinTraitement CAS 70010 Erreur("Erreur de doublons "+ErreurInfo()) RENVOYER opFinTraitement CAS 70700 Erreur("Erreur de modification : "+ErreurInfo()) RENVOYER opFinTraitement CAS 70710 Erreur("Erreur de valeur obligatoire "+ErreurInfo()) RENVOYER opFinTraitement CAS 70720 Erreur("Erreur de réindexation "+ErreurInfo()) RENVOYER opFinTraitement CAS 70022 Erreur("Erreur de mot de passe"+ErreurInfo()) RENVOYER opFinTraitement FIN
et puis aller au code d'initialisation du projet et ajouter la ligne: HSurErreur("*",hErrIntégrité + hErrDoublon + hErrModification + hErrMotDePasse , "SurAutreErreur" )
rajouter aussi l'exception au code d'initialisation du projet (optionnelle): QUAND EXCEPTION Info("L'application va être fermée car elle a rencontré des problèmes : "+ExceptionInfo) FIN
tenez moi au courant des résultats!! |
| |
| |
| | | |
|
| | |
| |
Posté le 01 février 2006 - 12:04 |
Bonjour
"Mouad" <saadidimiad@yahoo.fr> a écrit dans le message de news: 43e07a19$1@news.pcsoft.fr...
Penser à une gestion centralisée des exceptions: définir une procédure globale: PROCEDURE SurAutreErreur()
SELON HErreur(hErrEnCours) CAS 70015 Erreur("Erreur d'integrité "+ErreurInfo()) RENVOYER opFinTraitement
CAS 70100 Erreur("erreur de blocage"+ErreurInfo()) RENVOYER opFinTraitement
CAS 70010 Erreur("Erreur de doublons "+ErreurInfo()) RENVOYER opFinTraitement
CAS 70700 Erreur("Erreur de modification : "+ErreurInfo()) RENVOYER opFinTraitement
CAS 70710 Erreur("Erreur de valeur obligatoire "+ErreurInfo()) RENVOYER opFinTraitement
CAS 70720 Erreur("Erreur de réindexation "+ErreurInfo()) RENVOYER opFinTraitement
CAS 70022 Erreur("Erreur de mot de passe"+ErreurInfo()) RENVOYER opFinTraitement
FIN
et puis aller au code d'initialisation du projet et ajouter la ligne: HSurErreur("*",hErrIntégrité + hErrDoublon + hErrModification + hErrMotDePasse , "SurAutreErreur" )
rajouter aussi l'exception au code d'initialisation du projet (optionnelle): QUAND EXCEPTION Info("L'application va être fermée car elle a rencontré des problèmes : "+ExceptionInfo) FIN
tenez moi au courant des résultats!!
Il faut également penser à gérer le problème suivant:
Soit un logiciel qui manipule un fichier HF nommé CLIENT. Il n'y a pas d'index, ni de mémo (donc pas de fichier CLIENT.NDX ni de fichier CLIENT.MMO) Le truc tout simple (cette situation est valable, bien sur, lorsque le fichier comporte un index et un mémo).
Imaginons que nous soyons en présence d'un utilisateur qui aime bien mettre les mains dans le cambouis et qui bricole donc souvent dans les fichiers (dans le grand public il y a beaucoup de personnes qui font des manipulations quelquefois hasardeuses dans les fichiers). Un jour, il place (volontairement ou non) dans l'emplacement de stockage des fichiers de données du logiciel, un fichier CLIENT.FIC qui vient d'un autre logiciel. Rien de plus commun, en effet, qu'un fichier client s'appelant CLIENT pour une application WD (ou qu'un fichier STOCK également)
Donc et comme vous pouvez l'imaginer, au démarrage du logiciel ou lorsque le fichier va être manipulé, cela va coincer dur ...
Il faut donc gérer cette anomalie car, dans cette situation, le logiciel est inutilisable. Normalement, sous WD10, cette erreur porte le code "70150" (on la récupère via HErreur(hErrEnCours))
Sauf erreur de ma part, cette erreur ne peut pas être gérée par HSurErreur Donc, il faut prévoir (dans le code INIT du projet par exemple) une exception qui détecte l'erreur 70150 de façon à, lorsqu'elle se présente, prévenir l'utilisateur de la situation et lui demander: 1) soit de restaurer, dans l'emplacement de stockage, le fichier qui appartient bien au logiciel 2) soit de sélectionner une commande spéciale intégrée au logiciel et prévue à cet effet, pour supprimer le fichier via la commande Fsupprime et restaurer ainsi le bon fonctionnement du logiciel.
Ce type de situation se rencontre régulièrement
Pour simuler cette situation et, par conséquent, pour voir si vous pouvez être confronté à ce problème, faites la manip suivante: 1) ouvrez un fichier HF (le fichier FIC) dans le bloc notes de Windows 2) modifiez les 3 premiers caractères de ce fichier HF (généralement PCS) et enregistrez 3) démarrez le logiciel qui utilise le fichier HF en question et voyez ce que cela donne
A+
Val |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|