ZeroDivide.st
author Claus Gittinger <cg@exept.de>
Fri, 29 Aug 2003 21:08:08 +0200
changeset 7584 2104df18c2af
parent 6690 07ef28245da8
child 7585 87d76b40f897
permissions -rw-r--r--
example
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5947
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
DomainError subclass:#ZeroDivide
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:''
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
6218
f528bf2bcc5f category
Claus Gittinger <cg@exept.de>
parents: 5969
diff changeset
     7
	category:'Kernel-Exceptions-Errors'
5947
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
6218
f528bf2bcc5f category
Claus Gittinger <cg@exept.de>
parents: 5969
diff changeset
    10
!ZeroDivide class methodsFor:'documentation'!
f528bf2bcc5f category
Claus Gittinger <cg@exept.de>
parents: 5969
diff changeset
    11
f528bf2bcc5f category
Claus Gittinger <cg@exept.de>
parents: 5969
diff changeset
    12
documentation
f528bf2bcc5f category
Claus Gittinger <cg@exept.de>
parents: 5969
diff changeset
    13
"
f528bf2bcc5f category
Claus Gittinger <cg@exept.de>
parents: 5969
diff changeset
    14
    Raised when a division by zero is attempted.
f528bf2bcc5f category
Claus Gittinger <cg@exept.de>
parents: 5969
diff changeset
    15
"
7584
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    16
!
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    17
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    18
examples
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    19
"
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    20
    the following leads into a debugger:
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    21
                                                                    [exBegin]
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    22
        |divisor|
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    23
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    24
        divisor := 0.
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    25
        Transcript showCR: ( 5 / divisor ).
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    26
                                                                    [exEnd]
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    27
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    28
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    29
    the following does NOT leads into a debugger:
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    30
                                                                    [exBegin]
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    31
        |divisor|
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    32
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    33
        divisor := 0.
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    34
        [
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    35
            Transcript showCR: ( 5 / divisor ).
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    36
        ] on:ZeroDivide 
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    37
            do:
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    38
                [
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    39
                    Transcript flash.
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    40
                ]
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    41
                                                                    [exEnd]
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    42
"
6218
f528bf2bcc5f category
Claus Gittinger <cg@exept.de>
parents: 5969
diff changeset
    43
! !
5947
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
6690
07ef28245da8 notifier now initialized here
Claus Gittinger <cg@exept.de>
parents: 6218
diff changeset
    45
!ZeroDivide class methodsFor:'initialization'!
07ef28245da8 notifier now initialized here
Claus Gittinger <cg@exept.de>
parents: 6218
diff changeset
    46
07ef28245da8 notifier now initialized here
Claus Gittinger <cg@exept.de>
parents: 6218
diff changeset
    47
initialize
07ef28245da8 notifier now initialized here
Claus Gittinger <cg@exept.de>
parents: 6218
diff changeset
    48
    NotifierString := 'division by zero'.
07ef28245da8 notifier now initialized here
Claus Gittinger <cg@exept.de>
parents: 6218
diff changeset
    49
! !
07ef28245da8 notifier now initialized here
Claus Gittinger <cg@exept.de>
parents: 6218
diff changeset
    50
5947
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
!ZeroDivide methodsFor:'accessing'!
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
dividend
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    "Return the number that was being divided by zero."
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
5969
ed98cd153ecc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5947
diff changeset
    56
    ^ parameter receiver
5947
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
    "
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
     |a b|
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
     a := 5.
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
     b := 0.
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
     Integer divisionByZeroSignal handle:[:ex |
5969
ed98cd153ecc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5947
diff changeset
    64
        Transcript showCR:('division by zero - dividend was: ' , ex dividend printString)
5947
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
     ] do:[
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
        a // b
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
     ]
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    "
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
! !
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
!ZeroDivide class methodsFor:'documentation'!
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
version
7584
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    74
    ^ '$Header: /cvs/stx/stx/libbasic/ZeroDivide.st,v 1.5 2003-08-29 19:08:08 cg Exp $'
5947
45351eedb5a1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
! !
7584
2104df18c2af example
Claus Gittinger <cg@exept.de>
parents: 6690
diff changeset
    76
6690
07ef28245da8 notifier now initialized here
Claus Gittinger <cg@exept.de>
parents: 6218
diff changeset
    77
ZeroDivide initialize!