1 2 3 4 5 6 7 8 9 10 11 12 13 14 | (module divs br (require racket/contract) (provide (contract-out [int-div (integer? integer? . -> . integer?)])) (define (int-div num denom) (/ num denom)) (with-handlers ([exn:fail? (λ (e) 'inner-breach)]) (displayln (int-div 42 2.5)))) (require (submod "." divs)) (with-handlers ([exn:fail? (λ (e) 'outer-breach)]) (displayln (int-div 42 2.5))) |
1 2 | 16.8 ; no contract invoked from within the module 'outer-breach |
1 2 3 4 5 6 7 8 9 10 11 12 |
1 2 | 16.8 ; no contract invoked from within the module 'outer-breach |
1 2 3 4 5 6 7 8 9 10 11 12 13 | (module divs br (require racket/contract) (provide int-div) (define/contract (int-div num denom) (integer? integer? . -> . integer?) (/ num denom)) (with-handlers ([exn:fail? (λ (e) 'inner-breach)]) (displayln (int-div 42 2.5)))) (require (submod "." divs)) (with-handlers ([exn:fail? (λ (e) 'outer-breach)]) (displayln (int-div 42 2.5))) |
1 2 | 'inner-breach 'outer-breach |
1 2 3 | our-div: contract violation expected: nonzero number for denom given: 0 |