Inside the exception handler, the OS figures out what action to take, performs the action, then returns back to the user program. There are other kinds of exceptions. For example, if the program attempts to deference a NULL pointer, the hardware will generate an exception. The OS will have to figure out what kind of exception took place and handle it accordingly. Another kind of exception is a divide by 0 fault.
Similar things happen on a interrupt.
When an interrupt occurs, the hardware puts the OS into supervisor mode and invokes an interrupt handler. Object file formats. To run a process, the OS must load in an executable file from the disk into memory. The code to run, any initialized data, and a specification for how much space the uninitialized data takes up. May also be other stuff to help debuggers run, etc.