will ich euch nicht vorenthalten
oft hat man lisp-ausdrücke, die auf einen fehler auflaufen können
gerade wenn man z.B: mit activex arbeitet
ich habe mir da eine TRY funktion gescrieben
z.B.:
(if (not (setq daoobj (vlax-get-or-create-object "DAO.DBENGINE.35")))
(setq daoobj (vlax-get-or-create-object "DAO.DBENGINE.36"))
)
(try 'vlax-invoke (list daoobj "OPENDATABASE" "D:\\test.mdb"))
ergibt t fallse die methode OPENDATABASE erfolgreich ist sonst NIL
;
; Testroutine ergibt nil im Fehlerfall ansonst den Rückgabewert der zu testenden Funktion
; ist der Rückgabewert der Funktion auch im Erfolgsfall nil wird t zurückgegeben
;
; (try '+ (list 1 2 3 4 5 6)) ergibt 21
; (try '/ (list 5 0)) ergibt nil
;
(defun Try ( func arg / a1 a2 )
(setq a2 (vl-catch-all-error-p (setq a1 (vl-catch-all-apply func arg))))
(cond (a2 nil)
(a1 a1)
(t t)
)
)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP