All possible error conditions should be identified - it is better to prevent errors than "handle" them. There should not be menu choices or options that are not applicable in a particular interaction state. Error messages should be precise and constructive so that the user is informed of the exact cause of the problem and the steps to be taken to recover from it [15].