Exception.st
author claus
Fri, 05 Aug 1994 02:55:07 +0200
changeset 92 0c73b48551ac
parent 88 81dacba7a63a
child 130 e09411db2573
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
a27a279701f8 Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    12
a27a279701f8 Initial revision
claus
parents:
diff changeset
    13
Object subclass:#Exception
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    14
         instanceVariableNames:'signal parameter errorString
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    15
                                suspendedContext handlerContext
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    16
                                rejected
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    17
                                resumeBlock rejectBlock'
12
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
    18
         classVariableNames:'EmergencyHandler'
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    19
         poolDictionaries:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
         category:'Kernel-Exceptions'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    21
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    22
a27a279701f8 Initial revision
claus
parents:
diff changeset
    23
Exception comment:'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    24
COPYRIGHT (c) 1993 by Claus Gittinger
a27a279701f8 Initial revision
claus
parents:
diff changeset
    25
              All Rights Reserved
92
0c73b48551ac *** empty log message ***
claus
parents: 88
diff changeset
    26
0c73b48551ac *** empty log message ***
claus
parents: 88
diff changeset
    27
$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.10 1994-08-05 00:54:31 claus Exp $
12
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
    28
'!
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
    29
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
    30
!Exception class methodsFor:'documentation'!
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
    31
88
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    32
copyright
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    33
"
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    34
 COPYRIGHT (c) 1993 by Claus Gittinger
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    35
              All Rights Reserved
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    36
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    37
 This software is furnished under a license and may be used
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    38
 only in accordance with the terms of that license and with the
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    39
 inclusion of the above copyright notice.   This software may not
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    40
 be provided or otherwise made available to, or used by, any
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    41
 other person.  No title to or ownership of the software is
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    42
 hereby transferred.
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    43
"
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    44
!
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    45
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    46
version
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    47
"
92
0c73b48551ac *** empty log message ***
claus
parents: 88
diff changeset
    48
$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.10 1994-08-05 00:54:31 claus Exp $
88
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    49
"
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    50
!
81dacba7a63a *** empty log message ***
claus
parents: 77
diff changeset
    51
12
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
    52
documentation
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
    53
"
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    54
    Instances of Exception are passed to a Signal handling block as argument.
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    55
    The handler block may perform various actions by sending corresponding messages
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    56
    to the exception handler. The following actions are possible:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    57
a27a279701f8 Initial revision
claus
parents:
diff changeset
    58
        reject          - dont handle this signal;
a27a279701f8 Initial revision
claus
parents:
diff changeset
    59
                          another handler will be searched for, 
a27a279701f8 Initial revision
claus
parents:
diff changeset
    60
                          upper in the calling hierarchy
a27a279701f8 Initial revision
claus
parents:
diff changeset
    61
a27a279701f8 Initial revision
claus
parents:
diff changeset
    62
        proceed         - continue after the Signal>>raise, returning nil as value
a27a279701f8 Initial revision
claus
parents:
diff changeset
    63
        proceedWith:val - same, but return val from Signal>>raise
a27a279701f8 Initial revision
claus
parents:
diff changeset
    64
a27a279701f8 Initial revision
claus
parents:
diff changeset
    65
        return          - return from the Signal>>handle:do:, returning nil as value
a27a279701f8 Initial revision
claus
parents:
diff changeset
    66
        return:val      - same, but return val from Signal>>handle:do:
a27a279701f8 Initial revision
claus
parents:
diff changeset
    67
a27a279701f8 Initial revision
claus
parents:
diff changeset
    68
        restart         - restart the Signal>>handle:do:, after repairing
a27a279701f8 Initial revision
claus
parents:
diff changeset
    69
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    70
    Via the Exception object, the handler can also query the state of execution,
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    71
    where the Signal was raised, where the handler is, the signal which caused
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    72
    the error and the errorString passed when the signal was raised:
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    73
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    74
    instance variables:
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    75
        signal          - the signal which caused the exception
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    76
        parameter       - a parameter (if any) which was passed when raising
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    77
                          the signal (only if raised with #raiseWith:aParameter)
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    78
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    79
        errorString     - an errorString (only if raised wiith #raiseWith:errorString:)
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    80
        suspendedContext- the context where the signal raise occured
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    81
        handlerContext  - the context of the handler itself
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    82
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    83
        resumeBlock     - private to the exception; needed to perform resume action
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    84
        rejectBlock     - private to the exception; needed to perfomr reject action
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
    85
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    86
    In case of an unhandled signal raise, Exceptions EmergenyHandler (a two-argument
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    87
    block) will be evaluated, getting the exception and context as arguments.
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    88
    The default emergeny handler will enter the debugger.
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    89
    For applications, which do not want Debuggers to come up, other handlers are
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    90
    possible.
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    91
    For example: to get the typical C++ behavior, use:
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    92
        Exception emergencyHandler:[:ex :con | Smalltalk exitWithCoreDump]
54
06dbdeeed4f9 *** empty log message ***
claus
parents: 44
diff changeset
    93
06dbdeeed4f9 *** empty log message ***
claus
parents: 44
diff changeset
    94
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    95
    instance variables:
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    96
        signal           <Signal>   the signal which is responsible for all of this
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    97
        parameter        <Object>   the parameter passed to raiseRequestWith: or nil (for raise)
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    98
        errorString      <String>   the signals notifierString, or the string given to raise
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
    99
        suspendedContext <Context>  the context, in which the raise occured
54
06dbdeeed4f9 *** empty log message ***
claus
parents: 44
diff changeset
   100
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   101
        handlerContext   <Context>  the handlers (if found) context
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   102
        resumeBlock      <Block>    used during handler evaluation to get back
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   103
        rejectBlock      <Block>    used during handler evaluation to reject
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   104
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   105
    Class variables:
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   106
        EmergencyHandler <Block>    this block is evaluated, if no handler was defined
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   107
                                    for a signal (i.e. this one is responsible for the
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   108
                                    unhandled exception debugger).
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   109
                                    Having this being a block allows to globally catch
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   110
                                    these errors - even by someone not nesting around 
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   111
                                    the erronous code (as the catch/through does).
12
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   112
"
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   113
! !
3
24d81bf47225 *** empty log message ***
claus
parents: 1
diff changeset
   114
12
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   115
!Exception class methodsFor:'defaults'!
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   116
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   117
emergencyHandler
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   118
    "return the handler used for unhandled exceptions"
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   119
77
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   120
    "
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   121
     set it up, when called the first time
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   122
    "
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   123
    EmergencyHandler isNil ifTrue:[
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   124
        EmergencyHandler := [:ex :con |
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   125
            (ex signal) enterDebuggerWith:('unhandled exception: ' , ex errorString).
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   126
        ]
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   127
    ].
6c38ca59927f *** empty log message ***
claus
parents: 68
diff changeset
   128
12
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   129
    ^ EmergencyHandler
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   130
!
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   131
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   132
emergencyHandler:aTwoArgBlock
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   133
    "set the handler used for unhandled exceptions"
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   134
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   135
    EmergencyHandler := aTwoArgBlock
8e03bd717355 *** empty log message ***
claus
parents: 3
diff changeset
   136
! !
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   137
a27a279701f8 Initial revision
claus
parents:
diff changeset
   138
!Exception methodsFor:'accessing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   139
a27a279701f8 Initial revision
claus
parents:
diff changeset
   140
signal
a27a279701f8 Initial revision
claus
parents:
diff changeset
   141
    "return the signal, that caused the exception"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   142
a27a279701f8 Initial revision
claus
parents:
diff changeset
   143
    ^ signal
a27a279701f8 Initial revision
claus
parents:
diff changeset
   144
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   145
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   146
parameter
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   147
    "return the parameter passsed with the signal raise
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   148
     (or nil, if there was none)"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   149
a27a279701f8 Initial revision
claus
parents:
diff changeset
   150
    ^ parameter
a27a279701f8 Initial revision
claus
parents:
diff changeset
   151
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   152
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   153
errorString 
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   154
    "return the errorString passsed with the signal raise
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   155
     (or nil, if there was none)"
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   156
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   157
    ^ errorString
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   158
!
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   159
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   160
handlerContext
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   161
    "return the context of the handler"
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   162
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   163
    ^ handlerContext
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   164
!
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   165
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   166
suspendedContext
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   167
    "return the context in which the raise occured"
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   168
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   169
    ^ suspendedContext
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   170
!
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   171
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   172
rejected
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   173
    "return true, if the exception handler rejected.
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   174
     (only valid after handler execution)"
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   175
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   176
    ^ rejected
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   177
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   178
a27a279701f8 Initial revision
claus
parents:
diff changeset
   179
!Exception methodsFor:'setup'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   180
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   181
signal:aSignal parameter:aParameter errorString:aString suspendedContext:sContext
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   182
    "set the fields usable for inspection by the handler
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   183
     - only to be sent from the signal when raising"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   184
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   185
    signal := aSignal.
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   186
    parameter := aParameter.
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   187
    errorString := aString.
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   188
    suspendedContext := sContext.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   189
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   190
a27a279701f8 Initial revision
claus
parents:
diff changeset
   191
handlerContext:aContext
44
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   192
    "set the context of the handler.
b262907c93ea *** empty log message ***
claus
parents: 12
diff changeset
   193
     - only to be sent from the signal when raising"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   194
a27a279701f8 Initial revision
claus
parents:
diff changeset
   195
    handlerContext := aContext
a27a279701f8 Initial revision
claus
parents:
diff changeset
   196
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   197
a27a279701f8 Initial revision
claus
parents:
diff changeset
   198
rejectBlock:aBlock
a27a279701f8 Initial revision
claus
parents:
diff changeset
   199
    "this is meant to be sent by Signal only"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   200
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   201
    rejected := false.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   202
    rejectBlock := aBlock
a27a279701f8 Initial revision
claus
parents:
diff changeset
   203
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   204
a27a279701f8 Initial revision
claus
parents:
diff changeset
   205
resumeBlock:aBlock
a27a279701f8 Initial revision
claus
parents:
diff changeset
   206
    "this is meant to be sent by Signal only"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   207
a27a279701f8 Initial revision
claus
parents:
diff changeset
   208
    resumeBlock := aBlock
a27a279701f8 Initial revision
claus
parents:
diff changeset
   209
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   210
a27a279701f8 Initial revision
claus
parents:
diff changeset
   211
!Exception methodsFor:'handler actions'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   212
a27a279701f8 Initial revision
claus
parents:
diff changeset
   213
reject
a27a279701f8 Initial revision
claus
parents:
diff changeset
   214
    "handler decided not to handle this signal -
a27a279701f8 Initial revision
claus
parents:
diff changeset
   215
     system will look for another handler"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   216
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   217
    rejected := true.
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   218
    rejectBlock value
a27a279701f8 Initial revision
claus
parents:
diff changeset
   219
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   220
a27a279701f8 Initial revision
claus
parents:
diff changeset
   221
resume
a27a279701f8 Initial revision
claus
parents:
diff changeset
   222
    "Continue after the raise - the raise returns nil"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   223
a27a279701f8 Initial revision
claus
parents:
diff changeset
   224
    resumeBlock value:nil
a27a279701f8 Initial revision
claus
parents:
diff changeset
   225
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   226
a27a279701f8 Initial revision
claus
parents:
diff changeset
   227
resumeWith:value
a27a279701f8 Initial revision
claus
parents:
diff changeset
   228
    "Continue after the raise - the raise returns value"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   229
a27a279701f8 Initial revision
claus
parents:
diff changeset
   230
    resumeBlock value:value
a27a279701f8 Initial revision
claus
parents:
diff changeset
   231
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   232
a27a279701f8 Initial revision
claus
parents:
diff changeset
   233
proceed
a27a279701f8 Initial revision
claus
parents:
diff changeset
   234
    "Continue after the raise - the raise returns nil"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   235
a27a279701f8 Initial revision
claus
parents:
diff changeset
   236
    resumeBlock value:nil
a27a279701f8 Initial revision
claus
parents:
diff changeset
   237
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   238
a27a279701f8 Initial revision
claus
parents:
diff changeset
   239
proceedWith:value
a27a279701f8 Initial revision
claus
parents:
diff changeset
   240
    "Continue after the raise - the raise returns value"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   241
a27a279701f8 Initial revision
claus
parents:
diff changeset
   242
    resumeBlock value:value
a27a279701f8 Initial revision
claus
parents:
diff changeset
   243
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   244
a27a279701f8 Initial revision
claus
parents:
diff changeset
   245
return
a27a279701f8 Initial revision
claus
parents:
diff changeset
   246
    "Continue after the handle:do: - the handle:do: returns nil"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   247
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   248
    handlerContext unwind
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   249
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   250
a27a279701f8 Initial revision
claus
parents:
diff changeset
   251
returnWith:value
a27a279701f8 Initial revision
claus
parents:
diff changeset
   252
    "Continue after the handle:do: - the handle:do: returns value"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   253
68
59faa75185ba *** empty log message ***
claus
parents: 54
diff changeset
   254
    handlerContext unwind:value
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   255
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   256
a27a279701f8 Initial revision
claus
parents:
diff changeset
   257
restart
a27a279701f8 Initial revision
claus
parents:
diff changeset
   258
    "restart the handle:do: - usually after some repair work is done
a27a279701f8 Initial revision
claus
parents:
diff changeset
   259
     in handler"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   260
a27a279701f8 Initial revision
claus
parents:
diff changeset
   261
    handlerContext restart
a27a279701f8 Initial revision
claus
parents:
diff changeset
   262
! !