this is the error checking routine included on the old afralisp website.
just add (LOAD "ERROR.LSP") to your lisp routine and save the error.lsp in a pathed directory and away you go.
;;;
;;; TITLE: error.lsp
;;;
;;; Copyright (C) 2005 by www.afralisp.com
;;;
;;; Permission to use, copy, modify, and distribute this
;;; software and its documentation for any purpose and without
;;; fee is hereby granted
;;;
;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR
;;; IMPLIED WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY
;;; PARTICULAR PURPOSE AND OF MERCHANTABILITY ARE HEREBY
;;; DISCLAIMED.
;;;
;;; www.afralisp.com
;;; April 2005
;;;
;;;-------------------------------------------------------------
;;; Description:
;;; Error trap, console break function to be called from
;;; within other lisp routines in event of error or user
;;; console break.
;;;
;;;-------------------------------------------------------------
;;; COMMAND LINE: none
;;;-------------------------------------------------------------
(defun error () ;load function
(prompt "\nGlobal Error Trap Loaded") ;inform user
(princ)
) ;defun
;;;*==========================================================
(defun initerr () ;init error
(setq oldlayer (getvar "clayer") ;save settings
osm (getvar "osmode")
oldpick (getvar "pickbox")
blip (getvar "blipmode")
tlm (getvar "tilemode")
cmd (getvar "cmdecho")
mnec (getvar "menuecho")
hilt (getvar "highlight")
)
(setq temperr *error*) ;save *error*
(setq *error* trap) ;reassign *error*
(princ)
) ;defun
;;;*===========================================================
(defun trap (errmsg) ;define trap
(command nil nil nil)
(if (not (member errmsg '("console break" "Function Cancelled"))
)
(princ (strcat "\nError: " errmsg)) ;print message
)
(command "undo" "b") ;undo back
(setvar "clayer" oldlayer) ;reset settings
(setvar "blipmode" blip)
(setvar "menuecho" mnec)
(setvar "highlight" hilt)
(setvar "osmode" osm)
(setvar "pickbox" oldpick)
(setvar "tilemode" tlm)
(princ "\nError Resetting Enviroment ") ;inform user
(terpri)
(setq *error* temperr) ;restore *error*
(princ)
) ;defun
;;;*===========================================================
(defun reset () ;define reset
(setq *error* temperr) ;restore *error*
(setvar "clayer" oldlayer) ;reset settings
(setvar "blipmode" blip)
(setvar "menuecho" mnec)
(setvar "highlight" hilt)
(setvar "osmode" osm)
(setvar "cmdecho" cmd)
(setvar "pickbox" oldpick)
(setvar "tilemode" tlm)
(princ)
) ;defun
;;;*======================================================
(princ)