Main Content

The case for exceptions

Archive - Originally posted on "The Horse's Mouth" - 2006-07-11 06:14:45 - Graham Ellis

When you run a program, things can go wrong - run time errors. And no amount of coding by the programmer can prevent these things - it’s a user entering a string of text when a number’s required, a needed file having been deleted, or a network connection that’s broken that causes probems.

In traditional coding, it’s standard practise to check for as many of these errors as you can throughout your code, and this often results in a few lines of live code being wrapped in 4 or 5 times that number of lines of error checking ... which catch most but still not all of the errors that may occur.

Exceptions are provided in many modern OO languages - they’re in more recent C++ compilers, for example, as well as in languages like Python and Java. They let you write code where you don’t write the detail of checking for each possible error yourself - rather, you code for the working case and you enclose anything that may go wrong into a try block. Then you provide one or more catch blocks to set up actions that are to be taken if the try block failed to complete.

Great system; often less coding, and with a tendency to fail safe if error conditions that you’ve not explicitly coded for crop up.