.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal

Home >> Articles >> C# >> Post New Resource Bookmark and Share   

 Subscribe to Articles


Posted By:Shashi Ray       Posted Date: February 24, 2009    Points: 25    Category: C#    URL: http://www.dotnetspark.com  



Error handling in C# is accomplished using exceptions instead of other more awkward kinds of error checking. The thrust of exception handling is that you enclose the statements that could cause errors in a try block and then catch any errors using a catch statement.


try {



catch (Exception e) {

//do these if an error occurs


finally {

//do these anyway



Typically, you use this approach to test for errors around file handling statements, although you can also catch array index out of range statements and a large number of other error conditions. The way this works is that the statements in the try block are executed and if there is no error, control passes to the finally statements if any, and then on out of the block. If errors occur, control passes to the catch statement, where you can handle the errors, and then control passes on to the finally statements and then on out of the block.


The following example shows testing for any exception. Since we are moving one element beyond the end of the ArrayList, an error will occur:


try {

//note- one too many

for(int i = 0; i <= arl.Count ; i++)

Console.WriteLine (arl[i]);


catch(Exception e) {

Console.WriteLine (e.Message );



This code prints out the error message and the calling locations in the program and then goes on.

0123456789Index was out of range.


Must be non-negative and less than the size of the collection.

Parameter name: index at


System.Collections.ArrayList.get_Item(Int32 index)


By contrast, if we do not catch the exception, we will get an error message from the runtime system and the program will exit instead of going on. Some of the more common exceptions are shown in Table 1.



Error in accessing a method or field of a class.


Argument to a method is not valid.


Argument is null


Overflow or underflow


Division by zero


Array index out of range


File not found


Access beyond end of input stream (such as files)


Directory not found


The object variable has not been initialized to a real value.

Table 1.


Multiple Exceptions

You can also catch a series of exceptions and handle them differently in a series of catch blocks.


try {

for(int i =0; i<= arl.Count ; i++) {

int k = (int)(float)arl[i];

Console.Write(i + " "+ k / i);



catch(DivideByZeroException e) {



catch(IndexOutOfRangeException e) {



catch(Exception e) {




This gives you the opportunity to recover from various errors in different ways.


Throwing Exceptions

You don't have to deal with exceptions exactly where they occur: you can pass them back to the calling program using the Throw statement. This causes the exception to be thrown in the calling program:

try {



catch(Exception e) {

throw(e); //pass on to calling program



Note that C# does not support the Java syntax throws , that allows you to declare that a method will throw an exception and that you therefore must provide an exception handler for it.



Shashi Ray

 Subscribe to Articles


Further Readings:


No response found. Be the first to respond this post

Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend