Unit 05.03: The branch for when nothing worked
Every step can fail. In most designs, exactly zero of them say what happens when they do.
Catch into an outcome, keep the trail
Failures are caught and reported as an escalation with whatever progress was made.
The example below runs three states, two of which fail.
RUN 1 invoice found, contract found
trail: found invoice, found contract
outcome: SUCCESS
RUN 2 invoice found, contract missing
trail: found invoice
outcome: ESCALATE -- contract not found
RUN 3 invoice missing
trail: (nothing completed)
outcome: ESCALATE -- invoice not found
All three runs finish and report how far they got. The trail is what a
person picking it up starts from.
All three runs finish and report how far they got. The trail is the valuable part: "found invoice" then a missing contract is a different situation from finding nothing at all, and a person picking it up starts from a different place.
Without the catch, two of these end in a stack trace and the trail is lost - along with any work already done and anything a person had already approved.
The mistake this prevents
The mistake is catching broadly and continuing. Catch the failures you expect, name them, and let anything unexpected propagate - an unknown failure that continues quietly produces a wrong result instead of a handled one.
Takeaway
Catch expected failures into an outcome and keep the trail. An unhandled failure discards the whole run, including work a person already reviewed.
