BAPIs are remote enabled function modules that provide external access (from standalone JAVA or VB) to an SAP Business Application like “Create Sales Order” wrapped in Business Objects. BAPI cannot contain Exceptions.
RFC is a protocol for communication between different systems within SAP environment similar to HTTP. It can contain Exceptions.