Workunit inside an exception handler

This issue is related to issue 1102, in that it questions the purpose of having a workunit inside an exception handler, in the same way that 1102 questioned having the workunit in a finalizerBlock.

If we compare the semantics of a workunit within the exception handler to a general workunit, we find that they are essentially different constructs. The exception workunit has no repetition or blocking behavior, and has extreme restrictions on what can be placed in its guard condition (as far as I can tell it is only possible to check the exception type).

So why is it called a workunit?

My proposal is that rather than trying to reuse an existing activity (workunit), but modify its semantics significantly, would it not be better to have a new construct that is specific to the needs of the exception handler.

There are two possible solutions:

1) move the declaration of exception type onto the exception block, and allow multiple exception blocks to be defined.

<choreo ...>
   <exceptionBlock name=".." exceptionType="...." >
       <!-- some activity -->
   </exceptionBlock>
   <exceptionBlock name=".." >   <!-- default exception handler -->
       <!-- some activity -->
   </exceptionBlock>
</choreo>


2) have a new construct

<choreo ...>
    <exceptionBlock ..>
         <exceptionHandler type="..." >
              <!-- some activity -->
         </exceptionHandler>
         <exceptionHandler>        <!-- default exception handler -->
              <!-- some activity -->
         </exceptionHandler>
    </exceptionBlock>
</choreo>

Received on Monday, 21 March 2005 09:58:34 UTC