Possible Exception Hierarchies
Last updated at 12:37 pm UTC on 16 January 2006
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 ()