User exits allow customers to customize SAP functionality without modifying core SAP code. There are different types of user exits including function module exits, menu exits, screen exits, and field exits. Function module exits are called via function modules and allow custom code to be added to include programs. Menu exits can be used to add custom menu items. Screen exits define custom subscreens that can be added to standard SAP screens. Field exits trigger custom code for specific fields.