Implement RecursiveExceptionError. as class based exception.
authorStefan Vogel <sv@exept.de>
Wed, 04 Aug 1999 09:07:05 +0200
changeset 4519 fb4904d6787b
parent 4518 4716c8d7cb4c
child 4520 57362111e454
Implement RecursiveExceptionError. as class based exception.
GenericException.st
--- a/GenericException.st	Wed Aug 04 08:58:07 1999 +0200
+++ b/GenericException.st	Wed Aug 04 09:07:05 1999 +0200
@@ -48,6 +48,13 @@
 	privateIn:GenericException
 !
 
+Error subclass:#RecursiveExceptionError
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:GenericException
+!
+
 !GenericException class methodsFor:'documentation'!
 
 copyright
@@ -210,13 +217,10 @@
 !GenericException class methodsFor:'initialization'!
 
 initialize 
-    "setup the signal used to handle unhandled signals"
-
-    RecursiveExceptionSignal isNil ifTrue:[
-	RecursiveExceptionSignal := ErrorSignal newSignalMayProceed:false.
-	RecursiveExceptionSignal nameClass:self message:#recursiveExceptionSignal.
-	RecursiveExceptionSignal notifierString:'recursive signal raise in handler'
-    ]
+
+    NotifierString := 'unknown exception'.
+
+    "Modified: / 4.8.1999 / 09:06:26 / stefan"
 ! !
 
 !GenericException class methodsFor:'instance creation'!
@@ -262,10 +266,21 @@
     "Created: / 4.8.1999 / 08:34:30 / stefan"
 !
 
-recursiveExceptionSignal
+recursiveExceptionError
     "return the signal used to handle recursive signals in the handlers"
 
-    ^ RecursiveExceptionSignal
+    ^ RecursiveExceptionError
+
+    "Created: / 4.8.1999 / 09:05:06 / stefan"
+!
+
+recursiveExceptionSignal
+    "return the signal used to handle recursive signals in the handlers.
+     This is for backward compatinility. Use recursiveExceptionError"
+
+    ^ RecursiveExceptionError
+
+    "Modified: / 4.8.1999 / 09:05:59 / stefan"
 !
 
 wrongProceedabilityError
@@ -1983,9 +1998,45 @@
     "Modified: / 4.8.1999 / 08:43:53 / stefan"
 ! !
 
+!GenericException::RecursiveExceptionError class methodsFor:'documentation'!
+
+documentation
+"
+    RecursiveExceptionError is raised, if the same exception is raised
+    again in an exception handler.
+
+    The parameter is the recursive exception.
+"
+
+! !
+
+!GenericException::RecursiveExceptionError class methodsFor:'initialization'!
+
+initialize
+
+    NotifierString := 'recursive exception raise in handler'.
+
+    "
+     self initialize
+    "
+
+    "Created: / 4.8.1999 / 09:00:47 / stefan"
+    "Modified: / 4.8.1999 / 09:04:09 / stefan"
+! !
+
+!GenericException::RecursiveExceptionError class methodsFor:'queries'!
+
+mayProceed
+
+    ^ false
+
+    "Created: / 4.8.1999 / 09:00:47 / stefan"
+    "Modified: / 4.8.1999 / 09:04:27 / stefan"
+! !
+
 !GenericException class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/GenericException.st,v 1.12 1999-08-04 06:57:13 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/GenericException.st,v 1.13 1999-08-04 07:07:05 stefan Exp $'
 ! !
 GenericException initialize!