What is the difference between a use case alternative flow and an exception flow?

A use case specification describes the functionality of a system in terms of a sequence of user-system interactions. The main flow of events describes a single path through the system. It represents the most common way that the use case plays out successfully and contains the most common sequence of user-system interactions. Other scenarios or paths through the system are described in alternative flows and exception flows.  So what is the difference between and alternative flow and an exception flow?

First, it’s worth saying that there’s a number of differing opinions in this area since the Unified Modeling Language has no standard for Use Case Specifications. Some authors mention only alternative flows and use them for both optional user paths and error paths. However, among authors who differentiate between alternative flows and exception flows, agreement has emerged.  

An alternate flow describes a scenario other than the basic flow that results in a user completing his or her goal. It is often considered to be an optional flow. It implies that the user has chosen to take an alternative path through the system. An exception flow is an unintended path through the system usually as a result of missing information or system availability issues. Exception flows represent an undesirable path to the user. However, even though the exception flow has occurred the system should still react in a way that recovers the flow and provides some useful information to the user.

Alternative flow and exceptional flows
Alternative flow and exceptional flows

The primary benefit of differentiating between alternative flows and exception flows is the focus that exception flows bring to error conditions. By capturing all of the ways that the system can fail or produce an error, the business analyst can be sure to create a design that mitigates the impact of the error.

Chris Adams