Exceptions are passed up the call stack until caught or program termination.
When an exception is not caught in the method where it occurs, it propagates up the call stack to the previous method, continuing until it is caught or the program ends. For example, if `processOrder` throws an exception not handled within, it moves up to its caller, e.g., `checkout` method.