We added a new instance variable to Exception, called signaler. The idea is to abstract out the concept of the subject of the Exception since all Exceptions need that. Sometimes it is called receiver. We initialize signaler automatically when an exception is signaled (#signal) and set it to be equal to the #receiver since that will most of the time be right, unless it was already set by the caller.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
Exception (+signaler, messageText)
Abort
Error
ArithemticError
ZeroDivide (--dividend)
FloatingPointException
DomainError (from, to) ADDED
NaNException ADDED
FileStreamException (fileName)
FileDoesNotExistException (?readOnly)
FileExistsException (fileClass)
FileWriteError
FileReadError **
FileClosedException **
PermissionException **
CannotDeleteFileException -- FilePermissionException
MessageNotUnderstood (message, --receiver)
ShouldNotCall
NonBooleanReceiver (--object) -- MNU
OutOfMemory
Halt
AssertionFailure
BreakPoint
SyntaxError ** !exists! (input, position) ParsingError
NumberFormatException ** ?
ErrorNonInteractive ** NoInteractionAllowed
TimedOut ** (operation, timeout) !exist as Warning!
VerificationException
IllegalOperation ** (operation, object)
SizeMismatch ADDED
CollectionIsEmpty ADDED
SelectorException (selector) ADDED
SubclassResponsibility ADDED
PrimitiveFailed ADDED
SubclassResponsibility ADDED
ShouldNotImplement ADDED
ShouldBeImplemented ADDED
ReadOnlyReceiver **
OutOfFreeSpace ** (size)
InvalidArgument ** (message, argument)
NonIntegerIndex **
NotIndexable, NoKeyedAccess, CannotInstanciate ShouldNotCall ?
SubscriptOutOfBounds (subscript, lowerBound, upperBound) ADDED
NotFound (object) ADDED
KeyNotFound OK
ValueNotFound ADDED
StreamException
PositionError ** (index, from, to)
EndOfStream **
BeginOfStream **
Warning
LowMemory ** (percentageFree)
NotYetImplemented ** (message)