raise a special signal, when a literalencodings class
authorClaus Gittinger <cg@exept.de>
Tue, 18 May 1999 21:08:55 +0200
changeset 4197 8ae90a572914
parent 4196 6c73f712a49b
child 4198 7fc0d572c6f2
raise a special signal, when a literalencodings class is not present.
SeqColl.st
SequenceableCollection.st
--- a/SeqColl.st	Tue May 18 14:10:44 1999 +0200
+++ b/SeqColl.st	Tue May 18 21:08:55 1999 +0200
@@ -12,7 +12,7 @@
 
 Collection subclass:#SequenceableCollection
 	instanceVariableNames:''
-	classVariableNames:''
+	classVariableNames:'MissingClassInLiteralArrayErrorSignal'
 	poolDictionaries:''
 	category:'Collections-Abstract'
 !
@@ -61,6 +61,18 @@
 "
 ! !
 
+!SequenceableCollection class methodsFor:'initialization'!
+
+initialize
+    MissingClassInLiteralArrayErrorSignal isNil ifTrue:[
+        MissingClassInLiteralArrayErrorSignal := ErrorSignal newSignalMayProceed:true.
+        MissingClassInLiteralArrayErrorSignal nameClass:self message:#missingClassInLiteralArrayErrorSignal.
+        MissingClassInLiteralArrayErrorSignal notifierString:'Missing class in literal encoding'.
+    ]
+
+    "Created: / 18.5.1999 / 14:49:51 / cg"
+! !
+
 !SequenceableCollection class methodsFor:'instance creation'!
 
 new:size withAll:element
@@ -94,6 +106,14 @@
     "
 ! !
 
+!SequenceableCollection class methodsFor:'Signal constants'!
+
+missingClassInLiteralArrayErrorSignal
+    ^ MissingClassInLiteralArrayErrorSignal
+
+    "Created: / 18.5.1999 / 14:50:04 / cg"
+! !
+
 !SequenceableCollection methodsFor:'accessing'!
 
 after:anObject
@@ -1128,7 +1148,8 @@
     clsName := self first.
     cls := Smalltalk at:clsName ifAbsent:nil.
     cls isNil ifTrue:[
-        ^ self error:'unknown class in spec: ' , clsName.
+        ^ MissingClassInLiteralArrayErrorSignal 
+                raiseRequestWith:clsName errorString:('unknown class in spec: ' , clsName)
     ].
     ^ cls decodeFromLiteralArray:self.
 
@@ -1138,7 +1159,7 @@
      #(#MenuItem #rawLabel: 'right' #value: #right) decodeAsLiteralArray 
     "
 
-    "Modified: 25.2.1997 / 19:52:40 / cg"
+    "Modified: / 18.5.1999 / 14:51:58 / cg"
 !
 
 literalArrayEncoding
@@ -4126,5 +4147,6 @@
 !SequenceableCollection class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/SeqColl.st,v 1.103 1999-05-08 13:22:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/SeqColl.st,v 1.104 1999-05-18 19:08:55 cg Exp $'
 ! !
+SequenceableCollection initialize!
--- a/SequenceableCollection.st	Tue May 18 14:10:44 1999 +0200
+++ b/SequenceableCollection.st	Tue May 18 21:08:55 1999 +0200
@@ -12,7 +12,7 @@
 
 Collection subclass:#SequenceableCollection
 	instanceVariableNames:''
-	classVariableNames:''
+	classVariableNames:'MissingClassInLiteralArrayErrorSignal'
 	poolDictionaries:''
 	category:'Collections-Abstract'
 !
@@ -61,6 +61,18 @@
 "
 ! !
 
+!SequenceableCollection class methodsFor:'initialization'!
+
+initialize
+    MissingClassInLiteralArrayErrorSignal isNil ifTrue:[
+        MissingClassInLiteralArrayErrorSignal := ErrorSignal newSignalMayProceed:true.
+        MissingClassInLiteralArrayErrorSignal nameClass:self message:#missingClassInLiteralArrayErrorSignal.
+        MissingClassInLiteralArrayErrorSignal notifierString:'Missing class in literal encoding'.
+    ]
+
+    "Created: / 18.5.1999 / 14:49:51 / cg"
+! !
+
 !SequenceableCollection class methodsFor:'instance creation'!
 
 new:size withAll:element
@@ -94,6 +106,14 @@
     "
 ! !
 
+!SequenceableCollection class methodsFor:'Signal constants'!
+
+missingClassInLiteralArrayErrorSignal
+    ^ MissingClassInLiteralArrayErrorSignal
+
+    "Created: / 18.5.1999 / 14:50:04 / cg"
+! !
+
 !SequenceableCollection methodsFor:'accessing'!
 
 after:anObject
@@ -1128,7 +1148,8 @@
     clsName := self first.
     cls := Smalltalk at:clsName ifAbsent:nil.
     cls isNil ifTrue:[
-        ^ self error:'unknown class in spec: ' , clsName.
+        ^ MissingClassInLiteralArrayErrorSignal 
+                raiseRequestWith:clsName errorString:('unknown class in spec: ' , clsName)
     ].
     ^ cls decodeFromLiteralArray:self.
 
@@ -1138,7 +1159,7 @@
      #(#MenuItem #rawLabel: 'right' #value: #right) decodeAsLiteralArray 
     "
 
-    "Modified: 25.2.1997 / 19:52:40 / cg"
+    "Modified: / 18.5.1999 / 14:51:58 / cg"
 !
 
 literalArrayEncoding
@@ -4126,5 +4147,6 @@
 !SequenceableCollection class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/SequenceableCollection.st,v 1.103 1999-05-08 13:22:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/SequenceableCollection.st,v 1.104 1999-05-18 19:08:55 cg Exp $'
 ! !
+SequenceableCollection initialize!