=== 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 ()