Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

y aurait-il quelqu'un qui pourrais me guider sur la gestion des erreurs.

 

Comment gérer plus d'une erreur dans un même code et j'aimerais savoir quand est ce qu'il faut que je lance un erreur quand la personne peut appuyer n'importe quand sur ESC.

 

Merci !

 

François

Posté(e)

N'y allons pas par 4 chemins :

(defun c:maroutine(/ *error*) ; ici *error* est local.
 (defun *error* (msg)
   (command) ; Annulation des commandes en cours
   (princ (strcat"\nerreur ici, msg= " msg))
   (princ)
   )
 
 (command "_pline")
 (while (setq p(getpoint)) (command p))
 (command)
 )

 

Alors voilà. *error* aurait l'air comme cela d'une variable, c'est pourtant une fonction.

Si tu lances !*error* dans la ligne de commande (mieux dans la console Vlisp car là au moins il n'y a pas de correcteur d'orthographe à désactiver), cela te renvoie :

#

Tu as la preuve qu'il s'agit d'une fonction déjà définie.

 

Au sein d'une commande, comme je l'ai fait, on peut redéfinir cette fonction en toute tranquillité à l'intérieur puisque la variable est locale, enfermée. Tu connais au moins ce principe.

 

*error* portera toujours, et en Français, le message d'erreur renvoyé dans la variable msg.

Ici ca sera "fonction annulée".

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Si tu as plusieurs fonctions dont tu voudrais qu'elles accèdent, elles aussi à la même fonction de gestion des erreurs, à ce moment là, tu peux l'externaliser ainsi :

(defun c:maroutine(/ m:err) 

 (setq m:err *error* *error* ma_fct_err); passe-passe qui permet de substituer ma_fct_err 
 
 (command "_pline")
 (while (setq p(getpoint)) (command p))
 (command)

 (setq *error* m:err ;; restaurer *error* originel
m:err nil
)
 
 )
 
 (defun ma_fct_err (msg)
   (command) ; Annulation des commandes en cours
   (princ (strcat"\nerreur ici, msg= " msg))
   (princ)

   (setq *error* m:err m:err nil)
   
   )

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Bonjour Tramber,

 

Merci pour ton aide.

 

Donc, si je comprend bien tant que je substitu *error* dans mon code et que la touche ESC par exemple est appuyé l'erreur que j'ai remplacé sera envoyé.

 

Et, admetton que dans ma commande le je vérifie l'accès à une fichier .txt et s'assurer que si l'utilisateur appuie sur la touche ESC. Je peux créer 2 situations sous-routine d'erreur pour les gérers?

 

Merci.

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité