Sounds reasonable.
So a CATCH block would not be executed ? Or will it ?
I guess that it is obvious I am confused
No, an ABL CATCH will not execute if the event was fired by .NET. Instead the .NET routine that fired the event will handle it with a .NET catch mechanism. On the other hand, if the event that fired was an ABL event, then a CATCH in the ABL routine that fired the event can handle any errors that occur.
We have decided not to go through with this change for handlers of .NET events in 10.2B. We realized that with the change, there could be times when an OpenEdge system error (for example, inability to run a handler) would be suppressed by the .NET code that fired the event and therefore would never be noticed by the developer.
So -- the AVM will continue to process errors raised by an ABL handler for a .NET event just as it does in 10.2A. Any error message will be displayed to standard output, and no indication that there was an error will be returned to .NET. If there are additional event handlers queued to run, they will be invoked.
Note that the above applies only to handlers for .NET events. For ABL events, if a handler raises an error, the error will be raised on the statement that includes the Publish(). If there are additional handlers queued for that Publish, they will not run.