| |
Posté le 26 janvier 2006 - 18:48 |
Bonjour, j'ai beau chercher dans l'aide je ne trouve pas le moyen de renvoyer le nom du traitement ou de la procédure en cours d'exécution. Par exemple, si j'ai une erreur dans un traitement (par exemple sortie d'un champ), je voudrais pouvoir afficher un message d'erreur avec la fonction Erreur() : "Erreur dans le traitement : Sortie de chpCodeArticle" De même si j'ai une erreur dans une procédure (ex : AfficheArticle()) : "Erreur dans la procédure : AfficheArticle()"
En gros je voudrais trouver l'équivalent de MaFenêtre mais pour un traitement ou une procédure.
Merci, Claire |
| |
| |
| | | |
|
| | |
| |
Posté le 26 janvier 2006 - 20:06 |
Le 26/01/2006, Claire a supposé :
Bonjour, j'ai beau chercher dans l'aide je ne trouve pas le moyen de renvoyer le nom du traitement ou de la procédure en cours d'exécution. Par exemple, si j'ai une erreur dans un traitement (par exemple sortie d'un champ), je voudrais pouvoir afficher un message d'erreur avec la fonction Erreur() : "Erreur dans le traitement : Sortie de chpCodeArticle" De même si j'ai une erreur dans une procédure (ex : AfficheArticle()) : "Erreur dans la procédure : AfficheArticle()"
En gros je voudrais trouver l'équivalent de MaFenêtre mais pour un traitement ou une procédure.
Merci, Claire
La fonction ExceptionInfo(errComplet) est ton amie.
Eric
-- Eric Laurent nospam.laurent.systel@wanadoo.fr (enlever nospam.) |
| |
| |
| | | |
|
| | |
| |
Posté le 26 janvier 2006 - 20:10 |
Bonsoir,
Pour les traitements d'erreur que tu cites tu peux utiliser : ExceptionInfo(errElément)
-- Francis MOREL |
| |
| |
| | | |
|
| | |
| |
Posté le 26 janvier 2006 - 20:54 |
Merci à tous les deux mais je me suis mal exprimée. J'avais vu cette fonction mais je veux pouvoir renvoyer le nom du traitement même quand il n'y a pas d'erreur "système". Par exemple, je veux pouvoir faire :
PROCEDURE Coucou()
SELON i CAS 1 : // traitement 1 CAS 2 : // traitement 2 AUTRE CAS : Erreur("Mauvais paramètre","Fenêtre : "+MaFenêtre,"Traitement : "+ ???) FIN
Je cherche quoi mettre à la place des 3 points d'interrogations pour renvoyer "Coucou" |
| |
| |
| | | |
|
| | |
| |
Posté le 27 janvier 2006 - 10:42 |
saqlut
si tu es dans la procédure Coucou alors met "Coucou" à la place des ???
maintenant si j'ai mal lu ton exemple alors je ne sais pas |
| |
| |
| | | |
|
| | |
| |
Posté le 27 janvier 2006 - 11:49 |
Bonjour, Pourquoi ne passes tu pas le nom de ton champ en paramètre à ta procédure. EX : Dans ton champ tu appelles ta procédure Coucou("ChpCodeArticle")
Dans ta procédure : PROCEDURE Coucou(_Nom = "Non Défini"// au cas ou)
SELON i CAS 1 : // traitement 1 CAS 2 : // traitement 2 AUTRE CAS : Erreur("Mauvais paramètre","Fenêtre : "+MaFenêtre,"Traitement : "+ _Nom) FIN |
| |
| |
| | | |
|
| | |
| |
Posté le 30 janvier 2006 - 06:54 |
Salut,
j'ai trouvé un astuce pour récupérer le traitement en cours.
L'astuce est d'appeler une fonction, appelons la getTraitment, dans le traitement où tu as besoin de récupérer le nom du traitement. Dans cette fonction (getTraitement) tu provoques le déclanchement d'une exception. Tu récupères l'état de la pile d'appele et tu t'intéresses à l'avant dernier traitement (celui qui a appelé la fonction getTraitement).
Voici le code de getTraitement:
iPos est un entier strException est une chaîne = "Traitement inconnu" QUAND EXCEPTION DANS {"",indVariable} FAIRE strException = ExceptionInfo(errComplet) iPos = Position(strException,"eit_pilewl",1,SansCasse)//La pile d'appel est positionnée sous cette chaine SI iPos > 0 ALORS strException = strException[[iPos A]] strException = ExtraitChaîne(strException,3,RC)//Position de l'avant dernière fonction appelée FIN FIN RENVOYER strException
Et voilà tu as le nom de la fonction en cours!! Tu peux toujours développer pour enrichir le retour de la fonction
Mathieu |
| |
| |
| | | |
|
| | |
| |
Posté le 30 janvier 2006 - 10:48 |
Le but est de me créer une procédure globale à tout le projet pour ne pas avoir à taper à chaque fois : Erreur("Mauvais paramètre... Coucou")
surtout que le nom du champ (Coucou) peut changer en cours de programmation |
| |
| |
| | | |
|
| | |