Exception Hierarchies

Stephen Pope stp at create.ucsb.edu
Fri Aug 13 18:32:49 UTC 1999


Hello all,

I just added a discussion of exceptions with the Squeak class libraries
to the discussion page (http://minnow.cc.gatech.edu/squeak.748) and
thought I might post it here for comment.

Exception Hierarchies

In order to prepare for a more sophisticated and better integrated
exception system in Squeak, we need to plan what exceptions will be
thrown by the system classes. Below are three exception hierarchies: the
current 4thEstate base system, my proposed extensions, and a more
complete example taken from the VisualWorks Non-Commercial system (with
some platform-specific ones removed) (not included in this email for
brevity -- see the swiki page).

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 with additions by
STP)

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


-- 

Stephen Travis Pope  --  http://www.create.ucsb.edu/~stp
stp at create.ucsb.edu  --  stp9 at cornell.edu





More information about the Squeak-dev mailing list