=== Top of the Swiki === Attachments ===
Possible Exception Hierarchies
Below are three exception hierarchies: the current 4thEstate base system, my [STP] proposed extensions, and a more complete example taken from the VisualWorks Non-Commercial system (with some platform-specific ones removed).
Current "out of the box" TFEI Exceptions
Exception ('messageText' 'initialContext' 'resignalException' 'handlerContext' 'tag' )
BlockCannotReturn ('result' )
Error ()
Halt ()
MessageNotUnderstood ('message' )
MyResumableTestError ()
MyTestError ()
ZeroDivide ('dividend' )
IllegalResumeAttempt ()
Notification ()
ExceptionAboutToReturn ()
MyTestNotification ()
Warning ()
Proposed Squeak Exception Hierarchy (based on TFEI and VWNC)
Exception ('messageText' 'initialContext' 'resignalException' 'handlerContext' 'tag' )
BlockCannotReturn ('result' )
Error ()
Halt ()
UserInterrupt ()
MessageNotUnderstood ('message' )
ArithmeticError ()
DomainError ()
ZeroDivide ()
SqrtOfNegativeError()
LogOfZeroError()
RangeError ()
UnderflowError ()
OverflowError ()
AccessingError()
CollectionAccessingError ()
NotOrderedError ()
FileError()
IllegalFilenameError ()
DirectoryNotFoundError ()
FileProtectionError ()
VolumeFullError ()
NotFoundError ()
IndexNotFoundError ()
BindingNotFoundError ()
KeyNotFoundError ()
NonIntegerIndexError ()
SubscriptOutOfBoundsError ()
ValueNotFoundError ()
PrimitiveFailure ()
SignalError ()
SnapshotError ()
StreamError ()
StreamAtEndError ()
StreamWriteError ()
PositionOutOfBoundsError ()
SubclassResponsibilityError ()
ShouldNotImplementError ()
IllegalResumeAttempt ()
Notification ()
ExceptionAboutToReturn ()
FinalizeCallbackProcessNotification ()
Warning ()
VWNC3 Exceptions (somewhat simplified, for reference)
GenericException ('messageText' 'originator' 'initialContext' 'firstUnwindContext' 'handlerContext' 'parameter' 'isResumable' 'signal')
ControlInterrupt ()
HaltInterrupt ()
SystemNotification ()
UserInterrupt ()
Exception ()
ContextEmergencyError ()
Error ()
AllocationFailure ()
ArithmeticError ()
DomainError ()
ZeroDivide ()
RangeError ()
UnorderedNumbersError ()
BadControllerError ()
CannotResumeError ()
CannotReturnError ()
CantReopenError ()
ClassConstructionError ()
CodeSimulationError ()
CodeStorageError ()
ColorError ()
CompilationError ()
CTypeError ()
ExceededLimitsError ()
ExternalAccessFailed ()
ExternalLibraryError ()
ExternalObjectNotFoundError ()
LibraryNotFoundError ()
LibraryNotLoadedError ()
LibraryNotUnloadedError ()
InterruptLockedError ()
InvalidFormatError ()
InvalidNumberOfArgumentsError ()
MemberNotFoundError ()
MessageNotUnderstood ()
NonCharacterError ()
NotFoundError ()
IndexNotFoundError ()
BindingNotFoundError ()
KeyNotFoundError ()
NonIntegerIndexError ()
SubscriptOutOfBoundsError ()
ValueNotFoundError ()
ObsoleteClassError ()
OsError ()
OsIllegalOperation ()
OsInaccessibleError ()
OsInvalidArgumentsError ()
OsNeedRetryError ()
OsNoResourcesError ()
OsNotification ()
OsTransferFaultError ()
PrimitiveFailure ()
QueueOverflowError ()
RestartRequest ()
SignalError ()
SnapshotError ()
StreamError ()
IncompleteNextCountError ()
PositionOutOfBoundsError ()
SubclassResponsibilityError ()
UnsupportedCharacterError ()
InformationSignal ()
AccessActiveProcessNotification ()
Notification ()
ClosedWindowNotification ()
CommentRequestNotification ()
DoubleClickNotification ()
EndOfStreamNotification ()
FinalizeCallbackProcessNotification ()
GetBaseContextForException ()
NoOptimizeNotification ()
VariableReadBeforeWrittenNotification ()
VetoAction ()
UserNotification ()
Warning ()
PromiseTerminateException ()
TerminateException ()
UnhandledException ()