You may think that your program is working properly, but there is a chance that somebody will find something about it that causes an error, even if it is only under strange circumstances.

Just think about some of the possible causes of errors that you have little/no control over.. here are two of them:
The first (and probably most annoying) is that no matter how good you are at programming, every now and then you will make a mistake in your code (it's human nature I'm afraid!). If you test your program well enough you will be able to remove most/all of these issues, but there is still the chance that you have missed something, so errors could still happen.

The next issue is one that is hard to test for, and much harder/impossible to fix without error handling. Whether you realise it or not, it is very likely that your program will rely on other software/hardware (such as a printer driver, or a disk drive) to do something, and occasionally they have problems that can't be predicted… so your program will get an error when that happens.
Think about the programs that you use... anything other than the simplest ones have some kind of error every now and then, but the way they deal with errors varies:
  • Some will automatically correct them somehow (if they are set up to deal with the issue), so you may not even know the error occurred;
  • Some will show a warning message, perhaps in a message box or status bar (or for Internet Explorer, in a special web page!) and continue to run;
  • Others will end up in such a mess that you can't tell know how much damage they've done to your computer/files!
Automatically correcting errors can be hard work, but showing an error message is easy enough.

If you don’t set your programs up to deal with unexpected errors, then sooner or later they will crash… surely it’s better to add a few lines of code than have that?