* Added assertion-violation.

This commit is contained in:
Abdulaziz Ghuloum 2007-10-26 15:27:42 -04:00
parent 4522d66cfc
commit 1d482d9c9e
3 changed files with 18 additions and 5 deletions

Binary file not shown.

View File

@ -15,13 +15,15 @@
(library (ikarus exceptions) (library (ikarus exceptions)
(export with-exception-handler raise raise-continuable error) (export with-exception-handler raise raise-continuable
error assertion-violation)
(import (import
(only (rnrs) condition make-non-continuable-violation (only (rnrs) condition make-non-continuable-violation
make-message-condition make-error make-who-condition make-message-condition make-error make-who-condition
make-irritants-condition) make-irritants-condition make-assertion-violation)
(except (ikarus) (except (ikarus)
with-exception-handler raise raise-continuable error)) with-exception-handler raise raise-continuable
error assertion-violation))
(define handlers (define handlers
@ -69,6 +71,17 @@
(condition) (condition)
(make-irritants-condition irritants))))) (make-irritants-condition irritants)))))
(define (assertion-violation who msg . irritants)
(unless (string? msg)
(assertion-violation 'assertion-violation "message is not a string" msg))
(raise
(condition
(make-assertion-violation)
(if who (make-who-condition who) (condition))
(make-message-condition msg)
(if (null? irritants)
(condition)
(make-irritants-condition irritants)))))
) )

View File

@ -100,7 +100,7 @@
[apply C ba se] [apply C ba se]
[asin C ba se] [asin C ba se]
[assert C ba] [assert C ba]
[assertion-violation S ba] [assertion-violation C ba]
[atan C ba se] [atan C ba se]
[boolean=? C ba] [boolean=? C ba]
[boolean? C ba se] [boolean? C ba se]
@ -159,7 +159,7 @@
[eq? C ba se] [eq? C ba se]
[equal? C ba se] [equal? C ba se]
[eqv? C ba se] [eqv? C ba se]
[error S ba] [error C ba]
[even? C ba se] [even? C ba se]
[exact C ba] [exact C ba]
[exact-integer-sqrt C ba] [exact-integer-sqrt C ba]