System always generates error message at highest
level of interaction
User is allowed to trace error source through abstracted
application levels
(Error messages passed up 'command tree' reporting relative intention
at each stage)
User is also allowed to inspect the state of the system
at each level
Uses an eternalized library of error messages for
each application
Eternalized error generator linked with application
Scenario: desktop calculator
User types "n + =" without specifying
the 2nd number
User/System dialogue:
SYS:"I
cannot add two values, because there is only one value"
USER:"Why?"
SYS:"To
get the two values, I needed to get the first value, which I did."
USER:"Then?"
SYS:"Then
I needed to get the second value, but there is no more value."
USER:"Then?"
SYS: "To get
the second value, I needed to check if there is any value in the workspace,
but the workspace is empty."
USER: "Then?"
SYS: "That is
all."