0% found this document useful (0 votes)
34 views

10 Handout 1

Exceptions in C# represent errors and are organized in a hierarchy with the base Exception class and its subclasses. There are two types of exceptions: application exceptions generated by user code and system exceptions generated by the Common Language Runtime. The try-catch block is used to handle exceptions, with try checking for exceptions, catch catching thrown exceptions, and finally executing cleanup code. Exceptions can be thrown manually using throw or automatically by the system. Custom exceptions can also be created by inheriting from the Exception class.

Uploaded by

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

10 Handout 1

Exceptions in C# represent errors and are organized in a hierarchy with the base Exception class and its subclasses. There are two types of exceptions: application exceptions generated by user code and system exceptions generated by the Common Language Runtime. The try-catch block is used to handle exceptions, with try checking for exceptions, catch catching thrown exceptions, and finally executing cleanup code. Exceptions can be thrown manually using throw or automatically by the system. Custom exceptions can also be created by inheriting from the Exception class.

Uploaded by

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

IT1907

Errors and Exceptions


The Exception Hierarchy
Exception is represented by classes. All the exceptions are subclasses in the built-in exception class named Exception,
wherein it is a part of namespace System.
Two (2) Types of Exceptions
o ApplicationException – These exceptions are user program-generated.
o SystemException – These exceptions are generated by Common Language Runtime (CLR).
Here are the few exceptions which are commonly used:
• System.Exception – This is at the top of the standards’ exceptions hierarchy. The runtime system in C#
generates all the exceptions.
• System.ArithmeticException – Errors in arithmetic or conversion operation will be thrown in this exception.
• System.OverflowException – When an overflow occurs in a checked operation, it will be thrown in
OverflowException.
• System.ArgumentException – Any invalid argument in a method will be thrown in this exception.
• System.ArgumentNullException – If there is an unacceptable argument passed to a method, it will be thrown
in ArgumentNullException.
• System.IndexOutOfRangeException – Throw in this exception when attempting to index an array through an
index that is either less than zero or greater than the maximum length of index.
• System.OutOfMemoryException – If the available memory becomes too low to accommodate a memory
allocation request, it will be thrown in OutOfMemoryException.
• System.StackOverflowException – The exception StackOverflowException is called when the
execution stack is exhausted by having too many pending method calls.
• System.FormatException – This exception checks the format of the string or argument if it is invalid.

The try-catch Block


Handling exceptions in C# uses four (4) keywords:
• try – This keyword is used to check for the occurrence of any exceptions enclosed to it.
• catch – This keyword catches the exception that is thrown on the occurrence of exception in a try block.
• throw – It is used to throw an exception manually.
• finally – This keyword executes a given statement even if the exception is thrown or not thrown. This block
cannot transfer control by using break, continue, return, or goto.
try{
// code to be check for exceptions
}catch(Type_of_Exception var_name){
// exception are handled here.
}catch(Type_of_Exception var_name){
// exception are handled here
}finally{
// clean up any codes that are allocated in try block
}

Throwing an Exception
To catch exceptions, use the try-catch block to check the errors in the code and generate in the runtime system
automatically. Manually throwing using the throw keyword can also be used. The syntax is
throw new exception_Object;
The exception_Object is an instance of a class derived from the Exception class. The new operator is used to create a
new object.

10 Handout 1 *Property of STI


[email protected] Page 1 of 3
IT1907

private int num1, num2;


private void btnCompute_Click(object sender, EventArgs e){
num1 = Convert.ToInt32(txtNum1.Text);
num2 = Convert.ToInt32(txtNum2.Text);
if(num1 == 0 || num2 == 0)
throw new DivideByZeroException("Invalid Input");
else
MessageBox.Show("Total: " + GetQuotient(num1, num2));
}
public int GetQuotient(int x, int y){
return x/y;
}

Listing 1. Using throw without the try-catch block


Listing 1 shows how DivideByZeroException is thrown manually. The exception was caught in an if condition that
validates the input using the new operator. If the condition is equal to 0, the thrown exception will be called. The throw
keyword can be used outside of the try-catch block, but without the try-catch block, there will be an interruption in
the process. This will show an error message to the console and the application will be closed. If throwing an exception, a
catch block is needed.
private void btnCompute_Click(object sender, EventArgs e)
{
try{
num1 = Convert.ToInt32(txtNum1.Text);
num2 = Convert.ToInt32(txtNum2.Text);
if(num1 == 0 || num2 ==0)
throw new DivideByZeroException();
else
MessageBox.Show("Total: " + GetQuotient(num1, num2));
}
catch(DivideByZeroException dze)
{
Console.WriteLine("Divide By Zero Message: " + dze.Message);
}
catch(FormatException fe)
{
Console.WriteLine("Format Exception Message: " + fe.Message);
}
}
public int GetQuotient(int x, int y){
return x/y;
}
Listing 2. Using throw with try-catch block
Listing 2 contains two (2) catch blocks to check the format and check if the entered number is zero. In contrast, Listing 1
only shows an exception that will be thrown and will not catch when the exception occurs, while Listing 2 demonstrates
how a catch block catches a manually thrown exception. The DividebyZeroException is thrown by using throw
keyword and caught in a catch block and display the message.
Creating Own Exception
Creating one’s own exception is possible in .NET Framework because it provides a facility to create custom exceptions.Ina
customized exception, it requires or inherits those exceptions in System.Exception class or one of its standard derived
classes. The simplest form for a custom exception class is

public class CustomizeException: Exception{


//code here
}

10 Handout 1 *Property of STI


[email protected] Page 2 of 3
IT1907

Once the custom exception class is created and is derived from the Exception class, add a constructor using the following
format:
public class CustomizeException: Exception{
public CustomException(string str): base(str){
}
}
After that, the custom exception acts like other standard exceptions. One can pass a string that describes the cause oferror.
Listing 3 demonstrates the creation of the custom exception class InvalidUserInputException that throws manually
and catches the exception using the catch block.
///InvalidUserInputException Class
public class InvalidUserInputException : Exception{
public InvalidUserInputException(string age): base(age){
}
}

///CustomExcep Class with Form


public partial class CustomExcep : Form
{
public CustomExcep()
{
InitializeComponent();
}
private void btnCheck_Click(object sender, EventArgs e)
{
try{
checkAge(Int32.Parse(txtStudAge.Text));
}
catch(InvalidUserInputException ex)
{
Console.WriteLine("Message: " + ex.Message);
}
}
public void checkAge(int age){
if(age == 0 || age < 18)
{
throw new InvalidUserInputException("Not in legal age!");
}
else
{
MessageBox.Show("Legal Age!");
}
}
}
Listing 3. Custom Exception

REFERENCES:
Deitel, P. & Deitel, H. (2015). Visual C# 2012 how to program (5 th ed.). USA: Pearson Education, Inc.
Gaddis, T. (2016). Starting out with visual C# (4 th ed.). USA: Pearson Education, Inc.
Harwani, B. (2015). Learning object-oriented programming in C# 5.0. USA: Cengage Learning PTR.
Miles, R. (2016). Begin to code with C#. Redmond Washington: Microsoft Press.
Doyle, B. (2015). C# programming: from problem analysis to program design (5 th ed.). Boston, MA: Cengage Learning.

10 Handout 1 *Property of STI


[email protected] Page 3 of 3

You might also like