!--a11y-->
Reporting and Handling
Errors 
The options for error handling depend on the type of communication chosen:
· Asynchronous Communication: On the outbound side, the application can only handle errors that occur when the message is being sent (for example, the outbound queue is full). These errors can be caught and persisted using the exception class SystemFaultException. On the inbound side, as in the synchronous case, you can define fault messages, which are then only forwarded to monitoring (and not to the sender).
· Synchronous Communication: Using fault messages you can handle errors that have occurred on the inbound side. To confirm an error, the proxy runtime sends a message from the receiver back to the sender, which can then respond to it.
In the graphic below, an error from the receiver system is reported to the sender system in synchronous communication:
...
1. If an application on the receiver side triggers an error, the proxy runtime converts the corresponding exception class to a fault message and transfers it to the sender system using the Integration Server.
2. The proxy runtime in the sender system interprets the fault message and triggers the exception for the outbound message interface.
3. In the sender system, the application can catch and handle the exception using a try/catch block. Using the super exception class ApplicationFaultException, you can catch all remaining application errors.