Implement 5.30; on to last section; let's go!
This commit is contained in:
@@ -158,14 +158,38 @@
|
||||
|
||||
(display "\nex-5.30 - error-handling\n")
|
||||
|
||||
; a
|
||||
(set-register-contents! eceval 'exp
|
||||
'(begin
|
||||
(define (foo x) x)
|
||||
(foo a)))
|
||||
(start eceval)
|
||||
(newline)
|
||||
(assert (get-register-contents eceval 'val) 'unbound-variable-error))
|
||||
(assert (get-register-contents eceval 'val) 'error-unbound-variable))
|
||||
|
||||
; b
|
||||
(define (check-apply-division args)
|
||||
(cond
|
||||
((not (= (length args) 2)) 'error-div-wrong-number-of-args)
|
||||
((= (cadr args) 0) 'error-div-by-zero)
|
||||
(else 'ok)))
|
||||
|
||||
(set-register-contents! eceval 'exp
|
||||
'(begin
|
||||
(/ 1 0)))
|
||||
(start eceval)
|
||||
(newline)
|
||||
(assert (get-register-contents eceval 'val) 'error-div-by-zero)
|
||||
|
||||
;; CONTINUE HERE
|
||||
(define (check-apply-car args)
|
||||
(cond
|
||||
((not (pair? (car args))) 'error-car-no-pair)
|
||||
(else 'ok)))
|
||||
|
||||
(set-register-contents! eceval 'exp
|
||||
'(begin
|
||||
(car 3)))
|
||||
(start eceval)
|
||||
(newline)
|
||||
(assert (get-register-contents eceval 'val) 'error-car-no-pair)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user