What does this mean? It means that you should design your applications and web sites to provide the end user with useful and informative information when it runs into a problem. Failing gracefully means:
- Providing useful 404 pages on your web site
- Not displaying only error codes when your application crashes. Provide information that will help the user fix the problem.
- Not letting engineers write your error messages. (see point 2)
- Making sure errors behind the scenes don't bring everything else to a screeching halt
- Having good backup plans if things don't go as you originally planned.
- Knowing what your alternatives are.
- Planning ahead for optimistic and pessimistic scenarios
- Learning from your mistakes