Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth...
-
Upload
jaylan-hemmings -
Category
Documents
-
view
226 -
download
0
Transcript of Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth...
![Page 1: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/1.jpg)
Chapter 16: Exception Handling
C++ Programming: From Problem Analysis to Program Design, Fifth Edition
![Page 2: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/2.jpg)
Objectives
In this chapter, you will:
• Learn what an exception is
• Learn how to handle exceptions within a program
• See how a try/catch block is used to handle exceptions
• Become familiar with C++ exception classes
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 2
![Page 3: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/3.jpg)
Objectives (cont'd.)
• Learn how to create your own exception classes
• Discover how to throw and rethrow an exception
• Explore stack unwinding
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 3
![Page 4: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/4.jpg)
Introduction
• Exception: undesirable event detectable during program execution
• Until now, if exceptions occurred during execution:– Programmer-supplied code terminated the
program, or– Program terminated with an appropriate error
message
• Can add exception-handling code at point where an error can occur
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 4
![Page 5: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/5.jpg)
Handling Exceptions within a Program
• Function assert: – Checks if an expression meets certain
condition(s)– If conditions are not met, it terminates the
program
• Example: division by 0– If divisor is zero, assert terminates the
program with an error message
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 5
![Page 6: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/6.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 6
Handling Exceptions within a Program (cont’d.)
![Page 7: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/7.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 7
Handling Exceptions within a Program (cont’d.)
![Page 8: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/8.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 8
Handling Exceptions within a Program (cont’d.)
![Page 9: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/9.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 9
Handling Exceptions within a Program (cont’d.)
![Page 10: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/10.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 10
Handling Exceptions within a Program (cont’d.)
![Page 11: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/11.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 11
Handling Exceptions within a Program (cont’d.)
![Page 12: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/12.jpg)
C++ Mechanisms of Exception Handling
• The try/catch block handles exceptions
• Exception must be thrown in a try block and caught by a catch block
• C++ provides support to handle exceptions via a hierarchy of classes
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 12
![Page 13: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/13.jpg)
try/catch Block
• Statements that may generate an exception are placed in a try block
• The try block also contains statements that should not be executed if an exception occurs
• The try block is followed by one or more catch blocks
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 13
![Page 14: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/14.jpg)
try/catch Block (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 14
![Page 15: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/15.jpg)
try/catch Block (cont'd.)
• The catch block:– Specifies the type of exception it can catch
– Contains an exception handler
• If the heading of a catch block contains ... (ellipses) in place of parameters– Block can catch exceptions of all types
• If no exception is thrown in a try block– All catch blocks are ignored
– Execution resumes after the last catch blockC++ Programming: From Problem Analysis to Program Design, Fifth Edition 15
![Page 16: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/16.jpg)
try/catch Block (cont'd.)
• If an exception is thrown in a try block– Remaining statements (in block) are ignored
• Program searches catch blocks in order, looking for an appropriate exception handler– If the type of thrown exception matches the
parameter type in one of the catch blocks:• Code of that catch block executes• Remaining catch blocks are ignored
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 16
![Page 17: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/17.jpg)
try/catch Block (cont'd.)
• Consider the following block:
• In this catch block:– x is the catch block parameter– int specifies that block can catch an
exception of type int
• A catch block can have at most one catch block parameter
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 17
![Page 18: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/18.jpg)
Throwing an Exception
• For try/catch to work, the exception must be thrown in the try block
• General syntax:
where expression is a constant value, variable, or object
• The object being thrown can be a specific object or an anonymous object
• In C++, an exception is a valueC++ Programming: From Problem Analysis to Program Design, Fifth Edition 18
![Page 19: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/19.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 19
Throwing an Exception (cont’d.)
![Page 20: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/20.jpg)
Order of catch Blocks
• catch block can catch:– All exceptions of a specific type– All types of exceptions
• A catch block with an ellipses (three dots) catches any type of exception– If used, it should be the last catch block of
that sequence
• Be careful about the order in which you list catch blocks
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 20
![Page 21: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/21.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 21
Order of catch Blocks (cont’d.)
![Page 22: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/22.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 22
Order of catch Blocks (cont’d.)
![Page 23: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/23.jpg)
Using C++ Exception Classes
• C++ provides support to handle exceptions via hierarchy of classes
• The function what returns the string containing the exception object thrown by C++’s built-in exception classes
• The class exception is:– The base class of the exception classes
provided by C++– Contained in the header file exception
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 23
![Page 24: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/24.jpg)
Using C++ Exception Classes (cont'd.)
• Two subclasses of exception (defined in stdexcept):– logic_error
• invalid_argument: illegal arguments used in a function call
• out_of_range: string subscript out of range error
• length_error: if a length greater than the maximum allowed for a string object is used
– runtime_error • Examples: overflow_error and underflow_error
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 24
![Page 25: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/25.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 25
Using C++ Exception Classes (cont'd.)
![Page 26: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/26.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 26
Using C++ Exception Classes (cont'd.)
![Page 27: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/27.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 27
Using C++ Exception Classes (cont'd.)
![Page 28: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/28.jpg)
Using C++ Exception Classes (cont'd.)
• If new cannot allocate memory space, it throws a bad_alloc exception
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 28
![Page 29: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/29.jpg)
Using C++ Exception Classes (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 29
![Page 30: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/30.jpg)
Creating Your Own Exception Classes
• Programmers can create exception classes to handle their own exceptions– C++ uses the same mechanism to process
these exceptions
• To throw your own exceptions, use the throw statement
• Any class can be an exception class
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 30
![Page 31: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/31.jpg)
Creating Your Own Exception Classes (cont'd.)
• Exception class with member variables typically includes: constructors, function what
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 31
![Page 32: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/32.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 32
Creating Your Own Exception Classes (cont'd.)
![Page 33: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/33.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 33
Creating Your Own Exception Classes (cont'd.)
![Page 34: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/34.jpg)
Rethrowing and Throwing an Exception
• When an exception occurs in a try block, control immediately passes to one of the catch blocks, which either:– Handles the exception or partially processes
the exception and then rethrows the same exception
– Rethrows another exception for the calling environment to handle
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 34
![Page 35: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/35.jpg)
Rethrowing and Throwing an Exception (cont'd.)
• The general syntax to rethrow an exception caught by a catch block is:
(in this case, the same exception is rethrown) or:
where expression is a constant value, variable, or object
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 35
![Page 36: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/36.jpg)
Rethrowing and Throwing an Exception (cont'd.)
• The object being thrown can be:– A specific object– An anonymous object
• A function specifies the exceptions it throws in its heading using the throw clause
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 36
![Page 37: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/37.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 37
Rethrowing and Throwing an Exception (cont'd.)
![Page 38: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/38.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 38
Rethrowing and Throwing an Exception (cont'd.)
![Page 39: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/39.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 39
Rethrowing and Throwing an Exception (cont'd.)
![Page 40: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/40.jpg)
Exception-Handling Techniques
• When an exception occurs, the programmer usually has three choices:– Terminate the program– Include code to recover from the exception– Log the error and continue
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 40
![Page 41: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/41.jpg)
Terminate the Program
• In some cases, it is best to let the program terminate when an exception occurs
• For example, if the input file does not exist when the program executes– There is no point in continuing with the
program
• The program can output an appropriate error message and terminate
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 41
![Page 42: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/42.jpg)
Fix the Error and Continue
• In some cases, you will want to handle the exception and let the program continue
• For example, if a user inputs a letter in place of a number– The input stream will enter the fail state
• You can include the necessary code to keep prompting the user to input a number until the entry is valid
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 42
![Page 43: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/43.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 43
Fix the Error and Continue (cont’d.)
![Page 44: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/44.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 44
Fix the Error and Continue (cont’d.)
![Page 45: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/45.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 45
Fix the Error and Continue (cont’d.)
![Page 46: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/46.jpg)
Log the Error and Continue
• Example: if your program is designed to run a nuclear reactor or continuously monitor a satellite– It cannot be terminated if an exception occurs
• When an exception occurs– The program should write the exception into a
file and continue to run
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 46
![Page 47: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/47.jpg)
Stack Unwinding• When an exception is thrown in a function,
the function can do the following:– Do nothing– Partially process the exception and throw the
same exception or a new exception– Throw a new exception
• In each of these cases, the function-call stack is unwound – The exception can be caught in the next try/catch block
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 47
![Page 48: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/48.jpg)
Stack Unwinding (cont'd.)
• When the function call stack is unwound– The function in which the exception was not
caught and/or rethrown terminates– Memory for its local variables is destroyed
• The stack unwinding continues until:– A try/catch handles the exception or– The program does not handle the exception
• The function terminate is called to terminate the program
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 48
![Page 49: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/49.jpg)
Stack Unwinding (cont'd.)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 49
![Page 50: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/50.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 50
Stack Unwinding (cont'd.)
![Page 51: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/51.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 51
Stack Unwinding (cont'd.)
![Page 52: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/52.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 52
Stack Unwinding (cont'd.)
![Page 53: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/53.jpg)
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 53
Stack Unwinding (cont'd.)
![Page 54: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/54.jpg)
Summary• Exception: an undesirable event detectable
during program execution• assert checks whether an expression meets
a specified condition; terminates if not met• try/catch block handles exceptions
– Statements that may generate an exception are placed in a try block
– catch block specifies the type of exception it can catch and contains an exception handler
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 54
![Page 55: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/55.jpg)
Summary (cont'd.)• If no exceptions are thrown in a try block,
all catch blocks for that try block are ignored – Execution resumes after the last catch block
• Data type of catch block parameter specifies type of exception that catch block can catch
• catch block can have at most one parameter
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 55
![Page 56: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/56.jpg)
Summary (cont'd.)• exception: base class for exception
classes• what returns string containing the
exception object thrown by built-in exception classes
• Class exception is in header file exception
• runtime_error handles run-time errors
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 56
![Page 57: Chapter 16: Exception Handling C++ Programming: From Problem Analysis to Program Design, Fifth Edition.](https://reader036.fdocuments.in/reader036/viewer/2022062322/56649cba5503460f94981aaf/html5/thumbnails/57.jpg)
Summary (cont'd.)• You can create your own exception
classes
• A function specifies the exceptions it throws in its heading using the throw clause
• If the program does not handle the exception, then the function terminate terminates the program
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 57