Error situations are critical for usability for two reasons:
Error messages should basically follow four simple rules, they should be:
To supplement good error messages, systems should also provide good error recovery (i.e. Clearly Marked Exits).
Instead of putting all potentially useful bits of information in all messages, it is possible to use shorter messages that will be faster to read (i.e. Shortcuts) as long as the user is given easy access to a more elaborate message. The most common way is to implement multilevel messages. They have only two levels and supplement the short initial message with a button that can be clicked for more information.
Error messages should normally not reflect mysterious internal states of the computer that are completely incomprehensible to the regular user even though the information may help specialized support staff locate and fix the problem.