Now suppose that you are writing a utility that continuously checks for hard disk errors, so you really do know if there is a hard disk problem. If the utility finds such an error, whatever you do, don't give an error message like this one:
What's wrong with this message? While programmers are used to such error messages, users are not. They read messages like this carefully and think, "No, it's not OK that I have a corrupted hard disk!" Using an OK button to report such bad news is a particularly poor choice since it has a tendency to make users want to scream. A better approach is to report the problem by asking a question (and preferably one that helps the user solve the problem), such as:
If asking a question isn't practical, at least use different text on the button: