547 ;;Quote: use 'exception' instead of 'error' because one procedure's error may be just an option for another procedure
|
547 ;;Quote: only the immediate caller should handle a procedure's exceptions; since lower-level exceptions are part of the implementation
|
547+;;Quote: the exceptions signaled by a procedure are part of its abstraction
|
548 ;;Quote: resumption model: handler is an implicit parameter of the signaler; its arguments are defined in the caller's environment
|
548 ;;Quote: in the termination model of exception handling, the exception is conveyed to the caller
|
548 ;;Quote: with the resumption model, exception signalers and handlers are mutually dependent; each depend on the other for satisfying a relation
|
549 ;;Quote: termination is simpler than resumption for exception handling; resumption is rarely more expressive than termination
|
549 ;;Quote: the header of a CLU procedure specifies how it can terminate; i.e., its signals and return results
|
549+;;Quote: a CLU procedure can either return or signal an exceptional condition; both can provide result objects
|
550 ;;Quote: attaches exception handlers to statements but not expressions; gives example
|
550 ;;Quote: a statement can raise exceptions for any invocation it contains; the except statement raises all exceptions?
|
551 ;;Quote: an exit statement is like a 'signal' except that it raises an condition that is handled in the current procedure activation
|
552 ;;Quote: any function may return failure, e.g., if an exception is not caught
|
552+;;Quote: a function failure has a result object that may include an error message
|
555 ;;Quote: when signal an exception, search handler table for candidate with smallest scope
|