Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 06/06/2012 dans toutes les zones

  1. Bonjour, En cas d'erreur ou d'interruption lors de l'exécution, l'interpréteur LISP appelle automatiquement la fonction *error*, en lui passant comme argument un message d'erreur. La fonction *error* par défaut ne fait a priori pas grand chose, à part afficher dans la ligne de commande le message d'erreur reçu en argument. Pour mettre en place ta propre gestion d'erreurs, il te suffit donc de redéfinir la fonction *error*. Voici un exemple basique: (defun *error* (errmsg) (setvar "osmode" accro) (setvar "cmdecho" echo) (if errmsg (print errmsg) ) (princ) ) Mais il faut aussi penser à restaurer la fonction *error* par défaut une fois l'exécution de ton programme terminée, tout comme tu restaures les variables OSMODE et CMDECHO. Pour cela, le plus simple est de déclarer dans ton programme une variable locale *error*, et de redéfinir la fonction *error* localement (à l'intérieur même de ton programme). Ainsi elle remplacera la fonction *error* par défaut durant l'exécution de ton programme, puis sera automatiquement détruite. Par exemple: (defun c:cdernier (/ *error* ss1 ang dist0 dist1 pt1 pt2 echo accro) (defun *error* (errmsg) (setvar "osmode" accro) (setvar "cmdecho" echo) (princ errmsg) ) (princ "\Copie depuis dernier point :\n") (princ) (setq echo (getvar 'cmdecho) accro (getvar 'osmode)) ... )
    1 point
×
×
  • 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é