Results 1 to 2 of 2

Thread: Tratamento de erro - lisp.

  1. #1
    Active Member
    Join Date
    2009-04
    Location
    São Paulo - Brazil
    Posts
    63

    Exclamation Tratamento de erro - lisp.

    Bom dia pessoal,

    Como faço para minha rotina executar uma função, toda vez que ocorrer um erro, "que normalmente fecharia o programa"?

    Obrigado pessoal, e aguardo.

  2. #2
    Active Member pferreira's Avatar
    Join Date
    2006-06
    Location
    Lisbon, Portugal
    Posts
    88

    Default Re: Tratamento de erro - lisp.

    Por exemplo da forma que está como exemplo na documentação do produto usando a função (vl-catch-all-apply)
    Exemplo:
    "(defun catch-me-if-you-can (dividend divisor / errobj)
    (setq errobj (vl-catch-all-apply '/ (list dividend divisor)))
    (if (vl-catch-all-error-p errobj)
    (progn (print (strcat "An error occurred: " (vl-catch-all-error-message errobj) ) )
    (prompt "Do you want to continue? (Y/N) -> ")
    (setq ans (getstring)) (if (equal (strcase ans) "Y") (print "Okay, I'll keep going") ) ) (print errobj) )
    (princ) )"

    Esta função aceita dois números como argumentos e usa vl-catch-all-apply para dividir o primeiro numero pelo segundo. A função vl-catch-all-error-p vai então determinar se o valor que é passado por vl-catch-all-apply é um objecto de erro ou não, se o valor for um erro então catch-me-if-you-can invoca vl-catch-all-error-message para obter a mensagem do objecto de erro e de seguida continua com a execução do programa! O que pode ser complicado é em programas muito grandes e ou complexos determinar onde pode eventualmente acontecer erros que parem o programa, nestes só com muitos testes dos programadores e de vários utilizadores é que se pode descobrir esses erros e a melhor forma de tratar deles, pois pode ser um pouco complicado colocar em cada função uma outra função para tratar de erros!

    Cumprimentos
    Pedro Ferreira
    Senior CAD Drafter at ATKINS Portugal
    www.wsatkins.pt

Similar Threads

  1. Erro Inventor
    By ivsoteju in forum Português - Inventor / AutoCAD Mechanical / AutoCAD Electrical
    Replies: 0
    Last Post: 2009-11-09, 05:01 PM
  2. fdo wfs - erro de conexão
    By hugo.pereira in forum Português - AutoCAD Civil 3D / AutoCAD Land Desktop / AutoCAD Map 3D
    Replies: 0
    Last Post: 2009-09-06, 05:03 PM
  3. Erro no ADT2004
    By tito_freitas in forum Português - AutoCAD Architecture / AutoCAD MEP
    Replies: 1
    Last Post: 2009-07-16, 02:57 PM
  4. Erro Civil 3D
    By cadcastro in forum Português - AutoCAD Civil 3D / AutoCAD Land Desktop / AutoCAD Map 3D
    Replies: 0
    Last Post: 2008-12-09, 03:19 PM
  5. tratamento de erro....
    By lucianno in forum Português - Customização / Programação
    Replies: 4
    Last Post: 2007-10-08, 02:48 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •