comparative study of exception handling mechanisms

Upload: ionut-marian-bercea

Post on 04-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 comparative study of exception handling mechanisms

    1/50

  • 7/30/2019 comparative study of exception handling mechanisms

    2/50

  • 7/30/2019 comparative study of exception handling mechanisms

    3/50

  • 7/30/2019 comparative study of exception handling mechanisms

    4/50

  • 7/30/2019 comparative study of exception handling mechanisms

    5/50

    exceptions

    exceptionsInterface

    Internal

    Abnormal Activity(fault tolerance byexception handling)

    Normal Activity

    Lower-Level Components

    requestsService responsesNormal exceptionsFailure

    exceptionsFailure

    responsesrequestsService Normal

    exceptionsInterface

    Client/Caller

    Server/Callee

    Client/Caller

    Server/Callee

    Higher-Level Components

    normal operationReturn to

  • 7/30/2019 comparative study of exception handling mechanisms

    6/50

  • 7/30/2019 comparative study of exception handling mechanisms

    7/50

    protectedregion

    protectedregion

    statementsignaling

    method main()

    PROGRAM CLIENT

    method m1()

    SERVER

    method m2()

    Handler(E1)

    m1()calls

    m2()calls

    1

    2 34 5

    6

    8

    7

    flownormal control

    signaler

    handlers

    local

    protectedregion

    Normal Activity

    Exceptional Activity

    Normal Control Flow

    Exceptional Control Flow

    LEGEND

    *

    executedhandler is

    return to the

    signal E1

    E1

    Handler(e2)

    Handler(e3)

    Handler(e4)

    Handler(E5)

    Handler(e6)

    Handler(E7)

    Handler(E8)

    Handler(e9)

    exceptioninterface

  • 7/30/2019 comparative study of exception handling mechanisms

    8/50

  • 7/30/2019 comparative study of exception handling mechanisms

    9/50

  • 7/30/2019 comparative study of exception handling mechanisms

    10/50

    normal response

    A return_type

    method name(exceptional responses)Exception Interface

    Method (parameters) returns ( ) signals ( );exception_list

  • 7/30/2019 comparative study of exception handling mechanisms

    11/50

  • 7/30/2019 comparative study of exception handling mechanisms

    12/50

  • 7/30/2019 comparative study of exception handling mechanisms

    13/50

  • 7/30/2019 comparative study of exception handling mechanisms

    14/50

  • 7/30/2019 comparative study of exception handling mechanisms

    15/50

  • 7/30/2019 comparative study of exception handling mechanisms

    16/50

  • 7/30/2019 comparative study of exception handling mechanisms

    17/50

  • 7/30/2019 comparative study of exception handling mechanisms

    18/50

  • 7/30/2019 comparative study of exception handling mechanisms

    19/50

  • 7/30/2019 comparative study of exception handling mechanisms

    20/50

  • 7/30/2019 comparative study of exception handling mechanisms

    21/50

  • 7/30/2019 comparative study of exception handling mechanisms

    22/50

  • 7/30/2019 comparative study of exception handling mechanisms

    23/50

  • 7/30/2019 comparative study of exception handling mechanisms

    24/50

  • 7/30/2019 comparative study of exception handling mechanisms

    25/50

  • 7/30/2019 comparative study of exception handling mechanisms

    26/50

  • 7/30/2019 comparative study of exception handling mechanisms

    27/50

  • 7/30/2019 comparative study of exception handling mechanisms

    28/50

  • 7/30/2019 comparative study of exception handling mechanisms

    29/50

    ExceptionRepresentation

    ChecksReliability

    HandlerBinding

    ActionsCleanup

    ConcurrentExceptionHandling

    Smalltalk

    Eiffel

    Lore

    C++

    Java

    Arche

    Modula3

    Ext.Ada

    Guide

    Delphi

    Full Objects

    Data Objects

    Symbols

    Unsupported

    Hybrid

    Optional

    Unsupported

    Supported

    Static

    Dynamic

    Semi-Dynamic

    Method

    Object

    Class

    Exception

    Block

    Statement

    Unsupported

    Use of Explicit Propagation

    Unsupported

    Specific Construct

    Automatic

    Explicit

    Resumption

    Termination

    Dynamic Checks

    Static Checks

    Unsupported

    Limited

    Complete

    Automatic Cleanup

    1

    Ada95

    Compulsory

    BETA

    Continuation of

    Separation between Internal

    DesignMechanisms

    Exception

    Handlers

    Exceptions

    in SignaturesExternal Exceptions

    Final Score

    Attachment of

    Propagation of

    1

    Control Flow

    and External Exceptions

    Taxonomy

    Decisions

    0 00

    +1 +1

    -1

    +1

    -1 -1 -1 -1 -1

    -1-1

    +1

    -1

    -1 -1 -1

    +1 +1 +1 +1 +1 +1 +1 +1 +1

    -1

    -1

    -1

    -1

    -1

    -1-1

    +1

    -1

    +1

    +1+1

    +1

    +1

    +1+1+1 +1 +1

    +1

    -1 -1 -1

    +1 +1 +1 +1 +1 +1 +1 +1 +1

    -1 -1 -1

    +1

    -1

    +1 +1 +1+1

    -1

    +1

    -1

    -1

    +1

    +1

    -1 -1 -1

    +1

    +1

    +1

    +1

    +1 +1 +1 +1 +1 +1 +1 +1

    -1 -1 -1

    -1

    +1

    0 0 0 0

    +1 +1 +1 +1 +1 +1

    +1 +1 +1 +1 +1 +1 +1 +1 +1 +1

    +1 +1 +1 +1 +1 +1 +1 +1+1

    -1 - 1 -1 -1 - 1 -1 -1 - 1 -1

    0 0

    +1

    -3

    +1

    63 3 7 6-1 35

    +1+1+1+1

    -1

    -1(+)

    (+)

    LEGEND: (+) additive character

    -1-1

    -1-1

    Aspects

    -1

    +1

    A1.

    A2.

    A3.

    A4.

    A5.

    A6.

    A7.

    A8.

    A9.

    A10.

    +1

    -1

    (+)

    -1

    +1

    (+)

    3

  • 7/30/2019 comparative study of exception handling mechanisms

    30/50

  • 7/30/2019 comparative study of exception handling mechanisms

    31/50

  • 7/30/2019 comparative study of exception handling mechanisms

    32/50

  • 7/30/2019 comparative study of exception handling mechanisms

    33/50

  • 7/30/2019 comparative study of exception handling mechanisms

    34/50

    Dependable OOApplication

    Exception

    Mechanism

    Readability

    Modularity

    Mantainability

    Reliability

    Simplicity

    Performance

    Uniformity

    Traceability

    DesignDecisions

    Reusability

    Testability

    Writeability

    Consistency

  • 7/30/2019 comparative study of exception handling mechanisms

    35/50

  • 7/30/2019 comparative study of exception handling mechanisms

    36/50

  • 7/30/2019 comparative study of exception handling mechanisms

    37/50

  • 7/30/2019 comparative study of exception handling mechanisms

    38/50

    ApplicationMechanismException

    Q1.Readability

    Q2.Modularity

    Q3.Maintainability

    Q4.Reusability

    Q5.Testability

    Q6.Writeability

    Q7.Consistency

    Q8.Reliability

    Q9.S

    implicity

    Q10.Uniformity

    Q11.Traceability

    Q12.Performance

    Full Objects/Data Objects

    Symbols

    +-- - - - - - -

    + + + + + + + -+

    Unsupported/Optional

    Hybrid

    + + + -+

    -++

    - - - - -

    ++

    +-

    +-

    ++

    -

    ++

    +

    --

    +++- +

    --

    Compulsory

    Unsupported

    Supported +- - - - -

    --

    - -+ + + ++

    ++ +

    Static

    Dynamic

    Semi-Dynamic --++ -+

    ---

    -

    +-

    +-

    +

    -++

    Use of Explicit Propagation

    Unsupported - - --

    + -+ + + + +Unsupported

    Dynamic Checks

    Static Checks

    -++

    +

    Unsupported

    Limited

    Complete + + + + + + +

    --

    --

    --

    --

    --

    -- -

    +-

    --+

    -+ + +

    +-

    +-+

    --+

    +

    +-

    Specific Construct

    Automatic

    Explicit +-

    + + ++- -

    + +-

    -+- -

    -+-

    Resumption

    Termination

    - - -

    + + +

    Unsupported - + + - + - - +

    Method/Object/Class/Exception + + + + + - + +- - - - - + -

    Statement

    Block

    + + + + + + + +

    Propagation of

    Continuation of

    Control Flow

    Cleanup Actions

    Reliability Checks

    RepresentationException

    in SignaturesExternal Exceptions

    Attachment ofHandlers

    and External ExceptionsSeparation between Internal

    HandlerBinding

    Exceptions

    ConcurrentExceptionHandling

    QualityRequirements

    DecisionsDesignAspects

    Taxonomy

    D1.

    D2.

    D3.

    D2.

    D4.

    D4.

    D5.

    D6.

    D7.

    D8.

    D9.

    D9.

    D10.

    A1.

    A2.

    A3.

    A4.

    A5.

    A6.

    A7.

    A8.

    A9.

    A10.

    Automatic Cleanup

  • 7/30/2019 comparative study of exception handling mechanisms

    39/50

  • 7/30/2019 comparative study of exception handling mechanisms

    40/50

  • 7/30/2019 comparative study of exception handling mechanisms

    41/50

  • 7/30/2019 comparative study of exception handling mechanisms

    42/50

  • 7/30/2019 comparative study of exception handling mechanisms

    43/50

  • 7/30/2019 comparative study of exception handling mechanisms

    44/50

  • 7/30/2019 comparative study of exception handling mechanisms

    45/50

  • 7/30/2019 comparative study of exception handling mechanisms

    46/50

  • 7/30/2019 comparative study of exception handling mechanisms

    47/50

  • 7/30/2019 comparative study of exception handling mechanisms

    48/50

  • 7/30/2019 comparative study of exception handling mechanisms

    49/50

  • 7/30/2019 comparative study of exception handling mechanisms

    50/50