Characterising Exception Handling Strategies

The actual recovery response to any given class of exception can be specified as a pattern which succinctly describes the form of recovery that will be attempted. Specific exception patterns may apply in multiple situations in a given process model (i.e. for several distinct constructs), possibly for different types of exception. Exception patterns take the form of tuples comprising the following elements:

  • How the task on which the exception is based should be handled;
  • How the case and other related cases in the process in which the exception is raised should be handled; and
  • What recovery action (if any) is to be undertaken.

Each of these patterns describes a specific exception handling approach that may be associated with a process. Moreover these patterns generalize to a variety of distinct offerings and abstract from the actual manner in which they are implemented. Hence they meet with the definition of a pattern adopted during this research as an "abstraction from concrete from which keeps recurring in specific, non-arbitrary contexts" [RZ96]. However they operate at a different level of abstraction the the control-flow, data and resource patterns and are not comparable with them. As such, the exception handling patterns should be viewed as a taxonomy of exception handling strategies for PAIS rather than as a set of conceptual characteristics associated with exception handling. To better understand the information captured by individual exception patterns, it is worthwhile considering some examples.

The pattern SFF-CWC-COM specified for a work item failure exception for the Advise Head Office task in the Fortnightly Payroll process indicates that if a failure of a work item corresponding to the Advise Head Office task is detected when it has been started, then the work item should be terminated, have its state changed to failed and the nominated compensation task should be invoked. No action should be taken with other work items in the same case. It is important to note that this pattern only applies to instances of the work item that fail once started, it does not apply to instances in the offered or allocated states (which if required should have distinct patterns nominated for them).

The pattern OFF-RCC-NIL specified for a work item deadline exception for the Confirm Transport task in the Base Restock process indicates that if the deadline is reached for a work item corresponding to the Confirm Transport task that is in the offered state, then the state of the work item should be changed to failed and all other work items in the current case should be withdrawn. No other recovery action should be undertaken. In essence, the pattern indicates that the failure to secure transport by the requied deadline for the process instance is sufficiently serious that the process instance should be halted. In this scenario, it is likely that the additional patterns AFF-RCC-NIL and SFF-RCC-NIL would also be specified for the work item deadline for the Confirm Transport task, so that regardless of the state of the work item, failure to meet its specified deadline results in the process instance being halted.

The pattern AFC-CWC-NIL specified for a resource unavailability exception for the Tidy Locker Room task in the Prepare for Match process indicates that should a work item corresponding to the Tide Locker Room task be allocated to a resource and that resource become unavailable before the work item is commenced, then the work item should be marked as complete (thus triggering any subsequent work items), other work items in the case should be continued and no other recovery action should be undertaken. In effect, this exception handling strategy indicates the Tidy Locker Room tak can be skipped if the resource to which it is allocated becomes unavailable.

From the various options identified for each of pattern elements in this body of work, there are 135 possible patterns that can be conceived. However, not all patterns apply to a given exception type however, and Table 1 identifies those which apply to each of the exception types identified in this body of work.

Table 1: Exception patterns support by exception type

Work Item Failure

Work Item Deadline

Resource Unavailable

External Trigger

Constraint Violation

OFF-CWC-NIL
OFF-CWC-COM
OFC-CWC-NIL
OFC-CWC-COM
AFF-CWC-NIL
AFF-CWC-COM
AFC-CWC-NIL
AFC-CWC-COM
SRS-CWS-NIL
SRS-CWC-COM
SRS-CWC-RBK
SFF-CWC-NIL
SFF-CWC-COM
SFF-CWC-RBK
SFF-RCC-NIL
SFF-RCC-COM
SFF-RCC-RBK
SFC-CWC-NIL
SFC-CWC-COM
SFC-CWC-RBK

OCO-CWC-NIL
ORO-CWC-NIL
OFF-CWC-NIL
OFF-RCC-NIL
OFC-CWC-NIL
ACA-CWC-NIL
ARA-CWC-NIL
ARO-CWC-NIL
AFF-CWC-NIL
AFF-RCC-NIL
AFC-CWC-NIL
SCE-CWC-NIL
SCE-CWC-COM
SRS-CWC-NIL
SRS-CWC-COM
SRS-CWC-RBK
SRA-CWC-NIL
SRA-CWC-COM
SRA-CWC-RBK
SRO-CWC-NIL
SRO-CWC-COM
SRO-CWC-RBK
SFF-CWC-NIL
SFF-CWC-COM
SFF-CWG-RBK
SFF-RCC-NIL
SFF-RCC-COM
SFF-RCC-RBK
SFC-CWC-NIL
SFC-CWC-COM

ORO-CWC-NIL
OFF-CWC-NIL
OFF-RCC-NIL
OFC-CWC-NIL
ARO-CWC-NIL
ARA-CWC-NIL
AFF-CWC-NIL
AFF-RCC-N1L
AFC-CWC-NIL
SRA-CWC-NIL
SRA-CWC-COM
SRA-CWC-RBK
SRO-CWC-NIL
SRO-CWC-COM
SRO-CWC-RBK
SFF-CWC-NIL
SFF-CWC-COM
SFF-CWC-RBK
SFF-BCC-NIL
SFF-BCC-COM
SFF-RCC-RBK
SFF-RAC-NIL
SFC-CWC-NIL
SFC-CWC-COM
OCO-CWC-NIL
OFF-CWC-NIL
OFF-RCC-NIL
OFC-CWC-NIL
ACA-CWC-NIL
AFF-CWC-NIL
AFF-RCC-NIL
AFC-CWC-NIL
SCE-CWC-NIL
SRS-CWC-NIL
SRS-CWC-COM
SRS-CWC-RBK
SFF-CWC-NIL
SFF-CWC-COM
SFF-CWC-RBK
SFF-RCC-NIL
SFF-RCC-COM
SFF-RCC-RBK
SFF-RAC-NIL
SFC-CWC-NIL
SFC-CWC-COM
SCE-CWC-NIL
SRS-CWC-NIL
SRS-CWC-COM
SRS-CWC-RBK
SFF-CWC-NIL
SFF-CWC-COM
SFF-CWC-RBK
SFF-RCC-NIL
SFF-RCC-COM
SFF-RCC-RBK
SFF-RAC-NIL
SFC-CWC-NIL
SFC-CWC-COM

 

Previous - Recovery Action
Next - Survey of Exception Handling Capabilities