42
44
(declare (inline apply) ;; So as not to get bogus frames in debugger
43
45
(ignore error-name))
44
46
(let ((condition (coerce-to-condition datum args 'simple-error 'error)))
47
(continue "~A" (format nil "~?" continue-string args))
49
(invoke-debugger condition))
52
(invoke-debugger condition)))))
48
((eq t continue-string)
49
; from CEerror; mostly allocation errors
50
(with-simple-restart (ignore "Ignore the error, and try the operation again")
52
(invoke-debugger condition)))
53
((stringp continue-string)
55
(continue "~A" (format nil "~?" continue-string args))
57
(invoke-debugger condition)))
58
((and continue-string (symbolp continue-string))
60
(with-simple-restart (accept "Accept the error, returning NIL")
61
(multiple-value-bind (rv used-restart)
62
(with-simple-restart (ignore "Ignore the error, and try the operation again")
63
(multiple-value-bind (rv used-restart)
64
(with-simple-restart (continue "Continue, using ~S" continue-string)
66
(invoke-debugger condition))
68
(if used-restart continue-string rv)))
69
(if used-restart t rv))))
73
(invoke-debugger condition))))))
54
75
(defun sys::tpl-continue-command (&rest any)
55
76
(apply #'invoke-restart 'continue any))