Hi,
Lets look at two cases where you dont catch the exception. If your implementation does not use asynchronous continuations, then the calling client will ultimately be exposed to the exception. If the exception occurs in a job executor thread, then after n retries an incident will be created.
One way to avoid the above is to catch the exception in your delegate code and then in your exception handler, throw a new BpmnError() and in your process model catch the BpmnError and route the process appropriately…
This example uses a similar technique, however note this example is really showing how to manage this kind of situation inside a job executor thread, however the detail is relevant…
regards
Rob