ALBPM provides multiple ways of handling exceptions that occur outside of the normal flow of a program. The specific way used depends on where the exception occurs and what causes it.
This distinction defines the nature of the exception.
A system exception occurs when there is a problem with one of the components used by a process. These components can include databases, network connections, etc. System exceptions are included in the catalog as part of the standard Java exceptions.
A business exception is designed as part of a process business process, but is something that occurs outside of the normal flow of a process. This allows you to create cleaner processes where the main flow follows the normal use cases. System exceptions are defined as BPM objects within the catalog.
Another major differences between system and business exceptions is that business exceptions do not roll back activity transactions. This is because business exceptions are considered as a normal part of the process design rather than an error.
This distinctions defines where an exception is handled. All exceptions originate at the code level. However, they can be handled at either the code or process level depending on the requirements of your process design.
Code-level exception handling occurs within the scope of a PBL program. Code-level exceptions handling allows you to write code that directly accounts for the exception within the PBL task where it occured.
Process-level exception occurs as part of the process design. When an exception occurs that is not explicitly handled within the code, it is propagated up to the process level. Process-level exceptions are handled within in exception flows.
All exceptions are stored in the Catalog. System exceptions are stored as standard Java exceptions. Business Exceptions are stored within a user-defined BPM Objects.