* 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)
(export with-exception-handler raise raise-continuable error)
(export with-exception-handler raise raise-continuable
error assertion-violation)
(import
(only (rnrs) condition make-non-continuable-violation
make-message-condition make-error make-who-condition
make-irritants-condition)
make-irritants-condition make-assertion-violation)
(except (ikarus)
with-exception-handler raise raise-continuable error))
with-exception-handler raise raise-continuable
error assertion-violation))
(define handlers
@ -69,6 +71,17 @@
(condition)
(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]
[asin C ba se]
[assert C ba]
[assertion-violation S ba]
[assertion-violation C ba]
[atan C ba se]
[boolean=? C ba]
[boolean? C ba se]
@ -159,7 +159,7 @@
[eq? C ba se]
[equal? C ba se]
[eqv? C ba se]
[error S ba]
[error C ba]
[even? C ba se]
[exact C ba]
[exact-integer-sqrt C ba]