0% found this document useful (0 votes)
99 views35 pages

Exception Handling

The document discusses exception handling in C# and object-oriented error handling methods. It covers understanding exceptions, purposely generating exceptions, catching multiple exceptions, and using the finally block. Exception handling allows programs to gracefully deal with errors rather than terminating abruptly. Finally blocks are used to perform cleanup tasks regardless of whether an exception occurs.

Uploaded by

Subzero
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
99 views35 pages

Exception Handling

The document discusses exception handling in C# and object-oriented error handling methods. It covers understanding exceptions, purposely generating exceptions, catching multiple exceptions, and using the finally block. Exception handling allows programs to gracefully deal with errors rather than terminating abruptly. Finally blocks are used to perform cleanup tasks regardless of whether an exception occurs.

Uploaded by

Subzero
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 35

Chapter 11:

Exception Handling
Tests
• Test 2
• 3 Oct and 7 Oct
• Test 3
• 10 Oct and 14 Oct
• Makeup tests
• 26 Sep-30 Sep

Microsoft Visual C# 2012, Fifth Edition 2


Objectives
• Learn about exceptions, the Exception class,
and generating SystemExceptions
• Learn about traditional and object-oriented
error-handling methods
• Use the Exception class’s ToString()
method and Message property
• Catch multiple exceptions
• Examine the structure of the TryParse()
methods

Microsoft Visual C# 2012, Fifth Edition 3


Objectives (cont’d.)
• Use the finally block
• Handle exceptions thrown from outside methods

Microsoft Visual C# 2012, Fifth Edition 4


Understanding Exceptions

• Exception
– Any error condition or unexpected behavior in an executing
program
• Exceptions are objects of the Exception class or
one of its derived classes

Microsoft Visual C# 2012, Fifth Edition 5


Understanding Exceptions:
Errors generated by Programs
• Your program asks for user input, but the user enters
invalid data
• The program attempts to divide an integer by zero
• You attempt to access an array with a subscript that
is too large or too small
• You calculate a value that is out of range for the
answer’s variable type
• Exception handling
– Object-oriented techniques used to manage such errors

Microsoft Visual C# 2012, Fifth Edition 6


Understanding Exceptions:
• In C#, all exceptions are objects that are instances of
the Exception class or one of its derived classes.
• The Exception class is a descendant of the Object
class
• The Exception class has several descendant classes of
its own

Microsoft Visual C# 2012, Fifth Edition 7


Microsoft Visual C# 2012, Fifth Edition 8
Understanding Exceptions (cont’d.)

• Most exceptions derive from three classes:


– Predefined Common Language Runtime exception classes
derived from SystemException
– User-defined application exception classes you derive from
ApplicationException
– The Exception class

Microsoft Visual C# 2012, Fifth Edition 9


Purposely Generating a SystemException
• You can deliberately generate a
SystemException by forcing a program to
contain an error
– Example:
• Dividing an integer by zero
• You don’t necessarily have to deal with exceptions
• Termination of the program is abrupt and unforgiving
• Object-oriented error-handling techniques provide
more elegant solutions

Microsoft Visual C# 2012, Fifth Edition 10


Purposely Generating a SystemException
(cont’d.)

Microsoft Visual C# 2012, Fifth Edition 11


Purposely Generating a SystemException
(cont’d.)

Microsoft Visual C# 2012, Fifth Edition 12


Understanding Traditional and
Object-Oriented Error-Handling Methods
• Check a variable’s value with an if statement before
attempting to divide it into another number
– Prevents division by zero
• However, it does not really “handle an exception”
– Is efficient if you think it will be a frequent problem
• Has little “overhead”
• Otherwise, create an Exception object

Microsoft Visual C# 2012, Fifth Edition 13


Understanding Object-Oriented
Exception-Handling Methods
• try block
– Contains statements that can produce an error
• Code at least one catch block or finally block
immediately following a try block
• catch block
– Can “catch” one type of Exception

Microsoft Visual C# 2012, Fifth Edition 14


Understanding Object-Oriented
Exception-Handling Methods (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 15


Understanding Object-Oriented
Exception-Handling Methods (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 16


Understanding Object-Oriented
Exception-Handling Methods (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 17


Using the Exception Class’s ToString()
Method and Message Property
• The Exception class overrides ToString()
– Provides a descriptive error message
– The user can receive precise information about the nature
of any Exception that is thrown

Microsoft Visual C# 2012, Fifth Edition 18


Using the Exception Class’s ToString()
Method and Message Property (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 19


Using the Exception Class’s ToString()
Method and Message Property (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 20


Using the Exception Class’s ToString()
Method and Message Property (cont’d.)
• Exception class Message property
– Contains useful information about an Exception
• getType() method
– Indicates the name of the class

Microsoft Visual C# 2012, Fifth Edition 21


Using the Exception Class’s ToString()
Method and Message Property (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 22


Using the Exception Class’s ToString()
Method and Message Property (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 23


Catching Multiple Exceptions
• You can place as many statements as you need within
a try block
– Only the first error-generating statement throws an
Exception
• Multiple catch blocks are examined in sequence
until a match is found for the Exception that
occurred
• Various Exceptions can be handled by the same
catch block

Microsoft Visual C# 2012, Fifth Edition 24


Catching Multiple Exceptions (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 25


Catching Multiple Exceptions (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 26


Catching Multiple Exceptions (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 27


Catching Multiple Exceptions (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 28


Catching Multiple Exceptions (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 29


Catching Multiple Exceptions (cont’d.)

• It is poor coding style for a method to throw more


than three or four types of Exceptions
• If it does, one of the following conditions might be
true:
– The method is trying to accomplish too many diverse tasks
– The Exception types thrown are too specific and should
be generalized
• Unreachable blocks(dead code)
– Contain statements that can never execute under any
circumstances because the program logic “can’t get there”

Microsoft Visual C# 2012, Fifth Edition 30


Using the finally Block
• finally block
– Contains actions to perform at the end of a try…catch
sequence
– Executes whether the try block identifies any
Exceptions or not
– Used to perform clean-up tasks
• A finally block executes after:
– The try ends normally
– The catch executes
– The try ends abnormally and the catch does not
execute
Microsoft Visual C# 2012, Fifth Edition 31
Using the finally Block (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 32


Using the finally Block (cont’d.)

Microsoft Visual C# 2012, Fifth Edition 33


Summary
• An exception is any error condition or unexpected
behavior in an executing program
• You can purposely generate a SystemException
by forcing a program to contain an error
• When you think an error will occur frequently, it is
most efficient to handle it in the traditional way
• In object-oriented terminology, you “try” a
procedure that may not complete correctly
• Every Exception object contains a ToString()
method and a Message property
Microsoft Visual C# 2012, Fifth Edition 34
Summary (cont’d.)
• You can place as many statements as you need
within a try block
– Catch as many different Exceptions as you want
• When you have actions to perform at the end of a
try…catch sequence, use a finally block
• When methods throw Exceptions, they don’t have
to catch them

Microsoft Visual C# 2012, Fifth Edition 35

You might also like