16.1. Introduction
In this chapter, we introduce exception handling. An exception is an indication
of a problem that occurs during a program's execution. The name "exception"
implies that the problem occurs infrequently—if the "rule" is that a statement
normally executes correctly, then the "exception to the rule" is that a problem
occurs. Exception handling enables programmers to create applications that can
resolve (or handle) exceptions. In many cases, handling an exception allows a
program to continue executing as if no problem had been encountered. A more
severe problem could prevent a program from continuing normal execution, instead
requiring the program to notify the user of the problem before terminating in a
controlled manner. The features presented in this chapter enable programmers to
write robust and fault-tolerant programs
that are able to deal with problems that may arise and continue executing or
terminate gracefully. The style and details of C++ exception handling are based
in part on the work of Andrew Koenig and Bjarne Stroustrup, as presented in
their paper, "Exception Handling for C++ (revised)."
Error-Prevention Tip 16.1
|
Exception
handling helps improve a program's fault
tolerance. |
Software Engineering Observation 16.1
|
Exception handling provides a standard mechanism
for processing errors. This is especially important when working on a project
with a large team of
programmers. |
The chapter
begins with an overview of exception-handling concepts, then demonstrates basic
exception-handling techniques. We show these techniques via an example that
demonstrates handling an exception that occurs when a function attempts to
divide by zero. We then discuss additional exception-handling issues, such as
how to handle exceptions that occur in a constructor or destructor and how to
handle exceptions that occur if operator new
fails to allocate memory for an object. We conclude the chapter by introducing
several classes that the C++ Standard Library provides for handling
exceptions.