If you've been reading between the lines, you may have realized that the underlying message in this chapter is planning . A huge amount of effort goes into tracking down problems in software, and even a little forethought would reduce this wasted , and expensive, time. It always pays off in the end.
Part of this planning process is pre-empting the user . Try to think of the things that they do, so that your program is easy to use. Try not to get into the position where an error message leads them into thinking they've done something wrong we call this rude software. It's just cruel popping up horrible error messages telling them they've done something wrong. If you can write your program in a way that doesn't allow them to do wrong things, then you've got less of a problem trying to handle those unforeseen errors.
So, in this chapter we've looked at:
What errors are, and how you should design your program to minimize them
The type of testing you should use
How to debug your application if you do find errors
How to write error-handling code
It would be great if you never had to reference this chapter again. Not because you've remembered what was in it, but because you don't need to. However you probably will have to do some debugging at one stage or another, so learning what to do and how to prevent it can only make your life easier. Another method of preventing errors is using object orientation, and that's the topic of the next chapter.