Hi Eddy,
As far as I am aware there are no successors for the "old-fashioned" Function Modules of Function Group RSAX. The following two work-arounds might be helpful.
Use the RSAX Function Module-based Extractor as a "wrapper". Implement as much as possible functionality / logic in an ABAP-OO Class and use the Function Module in a lean way to call a "starter" method of the Class. Now you have all ABAP-OO features available such as class-based exceptions, interfaces, etc. The Function Module only has to contain the minimum necessary coding to make it work in the context of the S-API framework.
Another idea is using a custom Enhancement Spot with one or more BAdIs. Such a BAdI will use an Interface and can be filter-based on DataSource. The BAdI can be implemented for a particular DataSource. The Function Module now only has to call and execute the respective BAdI implementation.
Another (best practice) approach is to extract the data in a more generic way and do the join, enhancement and enrichment in BW. This often proofs to be a more future-proof approach rather than creating "DataMart oriented" Extractors in the Source System.
Best regards,
Sander