Exception handling is very important and critical part of any application and necessary for applications which have a large number of third party integrations too. There is always a question how to handle exceptions in savvion or how to handle exceptions in BPM product.
The basic way for handling exceptions in savvion is to write your code in an adapter which should take care of the exception handling. There can be few cases here how to handle the exceptions.
First is, you can handle the exceptions in java code and display the errors in log files, and then set the dataslots accordingly and the flow should take the decision based on the data updated. This scenario is feasible when you do not want to block your flow based on erros that can be manually fixed. In such case you can set a flag which will say that error has occurred which will help the process owners to update or start a manual process for the exception step.
Second case, is to throw an exception and suspend the workflow. This case is good when you want to block the process to flow further in case of any issues. It is useful in scenarios for which you know that the issue is temporary. An example would be third party integration failure, in which you know that the third party system could be down for a network failure or web-sevice was not available which can be re-instantiated or resumed later.
In short, if you know what you should do in case of any exceptions, then you should handle it in your code to take appropriate decisions. If not then you should always throw exception in your code to suspend the step.
Hope this helps! Suggestions are invited.