equal
deleted
inserted
replaced
75 Transcript showCR: ( 5 / divisor ). |
75 Transcript showCR: ( 5 / divisor ). |
76 ] on:ZeroDivide do:[ |
76 ] on:ZeroDivide do:[ |
77 Transcript flash. |
77 Transcript flash. |
78 ] |
78 ] |
79 [exEnd] |
79 [exEnd] |
|
80 |
|
81 the following suppresses the exception and results in NaN/Inf: |
|
82 [exBegin] |
|
83 |divisor| |
|
84 |
|
85 divisor := 0. |
|
86 Transcript showCR: (ZeroDivide ignoreIn:[ 5 / divisor ]) |
|
87 [exEnd] |
|
88 [exBegin] |
|
89 |divisor| |
|
90 |
|
91 divisor := 0. |
|
92 Transcript showCR: (ZeroDivide ignoreIn:[ -5 / divisor ]) |
|
93 [exEnd] |
|
94 [exBegin] |
|
95 |divisor| |
|
96 |
|
97 divisor := 0. |
|
98 Transcript showCR: (ZeroDivide ignoreIn:[ 0 / divisor ]) |
|
99 [exEnd] |
80 " |
100 " |
81 ! ! |
101 ! ! |
82 |
102 |
83 !ZeroDivide class methodsFor:'initialization'! |
103 !ZeroDivide class methodsFor:'initialization'! |
84 |
104 |
91 defaultResumeValue |
111 defaultResumeValue |
92 "return +/- infinity here, if ever proceeded" |
112 "return +/- infinity here, if ever proceeded" |
93 |
113 |
94 |poorReceiver| |
114 |poorReceiver| |
95 |
115 |
96 (poorReceiver := self dividend) negative ifTrue:[ |
116 poorReceiver := self dividend. |
|
117 poorReceiver isZero ifTrue:[ |
|
118 ^ poorReceiver class NaN |
|
119 ]. |
|
120 poorReceiver negative ifTrue:[ |
97 ^ poorReceiver class negativeInfinity |
121 ^ poorReceiver class negativeInfinity |
98 ]. |
122 ]. |
99 ^ poorReceiver class infinity |
123 ^ poorReceiver class infinity |
100 |
124 |
101 " |
125 " |
122 ] do:[ |
146 ] do:[ |
123 a / b |
147 a / b |
124 ] |
148 ] |
125 " |
149 " |
126 |
150 |
127 "Modified: / 20-06-2017 / 15:37:59 / cg" |
151 "Modified: / 20-06-2017 / 17:55:40 / cg" |
128 ! |
152 ! |
129 |
153 |
130 dividend |
154 dividend |
131 "Return the number that was being divided by zero." |
155 "Return the number that was being divided by zero." |
132 |
156 |
147 |
171 |
148 !ZeroDivide class methodsFor:'documentation'! |
172 !ZeroDivide class methodsFor:'documentation'! |
149 |
173 |
150 version |
174 version |
151 ^ '$Header$' |
175 ^ '$Header$' |
|
176 ! |
|
177 |
|
178 version_CVS |
|
179 ^ '$Header$' |
152 ! ! |
180 ! ! |
153 |
181 |
154 |
182 |
155 ZeroDivide initialize! |
183 ZeroDivide initialize! |