Error messages should give the user the information needed to solve the problem. In many situations, this means the underlying code needs to better differentiate error conditions.
- Put error codes at the end of the message. This allows any support personnel to get the relevant information without costing the user is time to read it ... or risk having the code push some of the words off the bottom of the screen/window.
- Keep the message short.
- Give clues regarding what the user can do to resolve the situation.
- Be specific.
- Log the critical errors
- Consider using a dialog box rather than a full screen, if your platform and device supports it.
- If possible, categorize errors into based on whether the user can fix the problem, the user needs to retry later, or an unfix-able error has occurred. Of course, many unfix-able errors should be fixed by the developer.
Frequently, the best commands are "Retry" and "Cancel."
Provide the user the ability to do some set of:
- Try the action again (Retry)... used to perform the same action again immediately or restart the process
- Fix the user entry (Edit)
- Abandon the task (Cancel)... returning the user to a logical starting point
- Save the data (Save)... allowing the user to abandon the task without losing context