--- a/RegressionTests__ExceptionTest.st Tue Nov 11 21:58:49 2008 +0100
+++ b/RegressionTests__ExceptionTest.st Tue Nov 11 22:37:09 2008 +0100
@@ -50,11 +50,13 @@
result := OrderedCollection new.
zero := 0.
- [ 0 // zero ] on:ZeroDivide do:[:ex|
- self assert:(ex signal == ZeroDivide).
- self assert:(ex originator == 0).
- result add:#Error
- ].
+ [ 0 // zero ]
+ on:ZeroDivide
+ do:[:ex|
+ self assert:(ex signal == ZeroDivide).
+ self assert:(ex originator == 0).
+ result add:#Error
+ ].
self assert:(result size == 1).
self assert:(result first == #Error).
@@ -144,6 +146,70 @@
self run:#test3
self new test3
"
+!
+
+test4_on_do
+
+ |exceptionHappened zero|
+
+ zero := 0.
+ exceptionHappened := false.
+
+ [0 // zero]
+ on:ZeroDivide
+ do:[:ex|
+ exceptionHappened := true
+ ].
+
+ self assert:(exceptionHappened).
+
+
+ "
+ self run:#test4_on_do
+ self new test4_on_do
+ "
+!
+
+test5_on_do_ensure
+
+ |exceptionHappened ensureCalled zero|
+
+ zero := 0.
+ exceptionHappened := ensureCalled := false.
+
+ [0 // zero]
+ on:ZeroDivide
+ do:[:ex| exceptionHappened := true]
+ ensure:[ ensureCalled := true ].
+
+ self assert:(exceptionHappened).
+ self assert:(ensureCalled).
+
+ "
+ self run:#test5_on_do_ensure
+ self new test5_on_do_ensure
+ "
+!
+
+test6_on_do_ensure
+
+ |exceptionHappened ensureCalled zero|
+
+ zero := 0.
+ exceptionHappened := ensureCalled := false.
+
+ [zero // 1]
+ on:ZeroDivide
+ do:[:ex| exceptionHappened := true]
+ ensure:[ ensureCalled := true ].
+
+ self assert:(exceptionHappened not).
+ self assert:(ensureCalled).
+
+ "
+ self run:#test6_on_do_ensure
+ self new test6_on_do_ensure
+ "
! !
!ExceptionTest class methodsFor:'documentation'!