Computer Programming ||
Chapter 2: Exception handling
Mahmoud Rafeek Alfarra
Syllabus
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
Revision of OOP
Exception Handling
String manipulation
Regular expression
Files and Streams
Connect applications with DBMS
Streams-Based Sockets and Datagrams
2
Contents
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
What is an exception error?
Exception handling
Syntax
Exception Classes in C#
Example
Practices
User defined Exception
3
What is an exception error?
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
An exception is a problem that arises
during the execution of a program.
A C# exception is a response to an
exceptional situation that arises while a
program is running, such as an attempt to
divide by zero.
4
What is an exception error?
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
Exceptions provide a way to transfer
control from one part of a program to
another.
5
Exception handling
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
C# exception handling is built upon four
keywords:
try: A try block identifies a block of code for
which particular exceptions will be activated.
It's followed by one or more catch blocks.
catch: A program catches an exception with
an exception handler at the place in a
program where you want to handle the
problem. The catch keyword indicates the
catching of an exception.
6
Exception handling
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
C# exception handling is built upon four
keywords:
finally: The finally block is used to execute a
given set of statements, whether an exception
is thrown or not thrown.
For example, if you open a file, it must be closed
whether an exception is raised or not.
throw: A program throws an exception when
a problem shows up. This is done using a
throw keyword.
7
Syntax
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
Assuming a block will raise and exception,
a method catches an exception using a
combination of the try and catch keywords.
You can list down multiple catch
statements to catch different type of
exceptions in case your try block raises
more than one exception in different
situations.
8
Syntax
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
9
Syntax
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
C# exceptions are represented by classes.
The exception classes in C# are mainly
directly or indirectly derived from the
System.Exception class.
Some of the exception classes derived
from the System.
Exception class are the System.ApplicationException
and System.SystemException classes.
10
Syntax
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
The System.ApplicationException class
supports
exceptions
generated
by
application programs.
So
the exceptions defined by the
programmers should derive from this
class.
The System.SystemException class is
the base class for all predefined system
exception.
11
Exception Classes in C#
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
There are another Exception classes in C#, search about them !!
12
Example 1
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
1. class Program {
2.
public static void division(int num1, int num2)
3.
{
4.
float result=0.0f;
5.
try
6.
{
7.
result = num1 / num2;
8.
}
9.
catch (DivideByZeroException e)
10.
{
11.
Console.WriteLine("Exception Error !! \n divid by zero !!");
12.
// Console.WriteLine("Exception caught: {0}", e);
13.
}
14.
finally
15.
{
16.
Console.WriteLine("Result: {0} ", result);
17.
}
18.
}
19.
static void Main(string[] args)
20.
{
21.
division(10,0);
22.
Console.ReadLine();
23.
} }
13
Example 2
www.cst.ps/staff/mfarra
1.
2.
3.
4.
5.
6.
7.
8.
www.facebook.com/mahmoudRfarra
catch (DivideByZeroException ex2)
{
//
…..
}
catch (FormatException ex1)
{
//……
}
14
Try
ex1.Message
Try
Exception only
Instead of
DivideByZeroException
Or
FormatException
Practice
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
Use
IndexOutOfRangeException
&
FormatException
&
Exception
15
User Defined Exception
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
Every user defined
exception must be
derived from
ApplicationException
ApplicationException
Every user
defined
exception
must be
defined as a
new class
New Exception
Class
16
User Defined Exception
www.cst.ps/staff/mfarra
www.facebook.com/mahmoudRfarra
using System;
namespace ExceptionHandling
{
class NegativeNumberException:ApplicationException
{
public NegativeNumberException(string message)
// show message
}
}
if(value<0)
throw new NegativeNumberException(" Use Only Positive numbers");
17
Mahmoud Rafeek Alfarra