--- a/CompiledCode.st Mon Mar 31 19:52:01 2003 +0200
+++ b/CompiledCode.st Mon Mar 31 19:54:01 2003 +0200
@@ -78,32 +78,43 @@
!CompiledCode class methodsFor:'initialization'!
initialize
- "create signals raised by various errors"
+ "create signals raised by various errors."
+
+ "uses class-based exceptions now (but remain backward compatible)"
NoByteCodeSignal isNil ifTrue:[
- NoByteCodeSignal := ExecutionErrorSignal newSignalMayProceed:true.
- NoByteCodeSignal nameClass:self message:#noByteCodeSignal.
+"/ NoByteCodeSignal := ExecutionErrorSignal newSignalMayProceed:true.
+"/ NoByteCodeSignal nameClass:self message:#noByteCodeSignal.
+ NoByteCodeSignal := NoByteCodeError.
NoByteCodeSignal notifierString:'nil byteCode in code-object - not executable'.
- InvalidByteCodeSignal := ExecutionErrorSignal newSignalMayProceed:true.
- InvalidByteCodeSignal nameClass:self message:#invalidByteCodeSignal.
+"/ InvalidByteCodeSignal := ExecutionErrorSignal newSignalMayProceed:true.
+"/ InvalidByteCodeSignal nameClass:self message:#invalidByteCodeSignal.
+ InvalidByteCodeSignal := InvalidByteCodeError.
InvalidByteCodeSignal notifierString:'invalid byteCode in code-object - not executable'.
- InvalidInstructionSignal := ExecutionErrorSignal newSignalMayProceed:true.
- InvalidInstructionSignal nameClass:self message:#invalidInstructionSignal.
+"/ InvalidInstructionSignal := ExecutionErrorSignal newSignalMayProceed:true.
+"/ InvalidInstructionSignal nameClass:self message:#invalidInstructionSignal.
+ InvalidInstructionSignal := InvalidInstructionError.
InvalidInstructionSignal notifierString:'invalid instruction in code-object - not executable'.
- BadLiteralsSignal := ExecutionErrorSignal newSignalMayProceed:true.
- BadLiteralsSignal nameClass:self message:#badLiteralsSignal.
+"/ BadLiteralsSignal := ExecutionErrorSignal newSignalMayProceed:true.
+"/ BadLiteralsSignal nameClass:self message:#badLiteralsSignal.
+ BadLiteralsSignal := BadLiteralsError.
BadLiteralsSignal notifierString:'bad literal table in code-object - should not happen'.
- NonBooleanReceiverSignal := ExecutionErrorSignal newSignalMayProceed:true.
- NonBooleanReceiverSignal nameClass:self message:#nonBooleanReceiverSignal.
+"/ NonBooleanReceiverSignal := ExecutionErrorSignal newSignalMayProceed:true.
+"/ NonBooleanReceiverSignal nameClass:self message:#nonBooleanReceiverSignal.
+ NonBooleanReceiverSignal := NonBooleanReceiverError.
NonBooleanReceiverSignal notifierString:'if/while on non-boolean receiver'.
- ArgumentSignal := ExecutionErrorSignal newSignalMayProceed:true.
- ArgumentSignal nameClass:self message:#argumentSignal.
+"/ ArgumentSignal := ExecutionErrorSignal newSignalMayProceed:true.
+"/ ArgumentSignal nameClass:self message:#argumentSignal.
+ ArgumentSignal := ArgumentError.
ArgumentSignal notifierString:'bad argument(s)'.
+
+"/ WrongNumberOfArgumentsSignal := WrongNumberOfArgumentsError.
+ WrongNumberOfArgumentsError notifierString:'wrong number of argument(s)'.
]
"Modified: 22.4.1996 / 16:33:38 / cg"
@@ -154,6 +165,12 @@
"return the parent-signal of all execution errors"
^ ExecutionErrorSignal
+!
+
+wongNumberOfArgumentsSignal
+ "return the signal raised when the number of arguments is wrong in a call"
+
+ ^ WrongNumberOfArgumentsError
! !
!CompiledCode class methodsFor:'queries'!
@@ -729,10 +746,10 @@
!CompiledCode methodsFor:'error handling'!
-badArgumentArray
+badArgumentArray:argsGiven
"{ Pragma: +optSpace }"
- "this error is triggered, if a non array is passed to
+ "this error is triggered, if a non-array is passed to
#valueWithReceiver:.. type of methods"
^ ArgumentSignal
@@ -864,7 +881,7 @@
"Modified: 4.11.1996 / 22:47:14 / cg"
!
-wrongNumberOfArguments:numberGiven
+wrongNumberOfArguments:numArgsGiven
"{ Pragma: +optSpace }"
"this error is triggered by the VM, if a method is called with a wrong number
@@ -872,10 +889,10 @@
This only applies to #valueWithReceiverXXX and #perform:withArguments: - sends.
With a normal send, this error cannot happen."
- ^ ArgumentSignal
+ ^ WrongNumberOfArgumentsError
raiseRequestWith:self
errorString:(' - ', self class name ,
- ' got ' , numberGiven printString ,
+ ' got ' , numArgsGiven printString ,
' arg(s) where ' , self numArgs printString , ' expected')
"
@@ -1231,7 +1248,7 @@
"
arguments must be either nil or an array
"
- ^ self badArgumentArray
+ ^ self badArgumentArray:argArray
]
].
@@ -1691,6 +1708,7 @@
!CompiledCode class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.90 2002-07-24 15:04:14 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.91 2003-03-31 17:54:01 cg Exp $'
! !
+
CompiledCode initialize!
--- a/ExecutableFunction.st Mon Mar 31 19:52:01 2003 +0200
+++ b/ExecutableFunction.st Mon Mar 31 19:54:01 2003 +0200
@@ -73,13 +73,17 @@
initialize
"create signals raised by various errors"
+ "uses class-based exceptions now (but remain backward compatible)"
+
InvalidCodeSignal isNil ifTrue:[
- ExecutionErrorSignal := Error newSignalMayProceed:true.
- ExecutionErrorSignal nameClass:self message:#executionErrorSignal.
+"/ ExecutionErrorSignal := Error newSignalMayProceed:true.
+"/ ExecutionErrorSignal nameClass:self message:#executionErrorSignal.
+ ExecutionErrorSignal := ExecutionError.
ExecutionErrorSignal notifierString:'execution error'.
- InvalidCodeSignal := ExecutionErrorSignal newSignalMayProceed:true.
- InvalidCodeSignal nameClass:self message:#invalidCodeSignal.
+"/ InvalidCodeSignal := ExecutionErrorSignal newSignalMayProceed:true.
+"/ InvalidCodeSignal nameClass:self message:#invalidCodeSignal.
+ InvalidCodeSignal := InvalidCodeError.
InvalidCodeSignal notifierString:'invalid code-object - not executable'.
]
@@ -433,7 +437,7 @@
!ExecutableFunction class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/ExecutableFunction.st,v 1.47 2003-03-02 20:49:53 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/ExecutableFunction.st,v 1.48 2003-03-31 17:53:48 cg Exp $'
! !
ExecutableFunction initialize!