Exception Handling In C#

Throwing an error

Consider the following code snippet

int a, b = 0 ;
Console.WriteLine( "My program starts" ) 
try
{
 a = 10 / b;
}
finally
{
 Console.WriteLine ( "finally" ) ; 
}
Console.WriteLine ( "Remaining program" ) ; 
Here the output is

My program starts
Exception occurred: System.DivideByZeroException: Attempted to divide by zero.at ConsoleApplication4.Class1.Main(String[] args) in d:\programs\consoleapplication4\class1.cs:line 51
finally

Note that "Remaining program" is not printed out. Only "finally" is printed which is written in the finally block.

The throw statement throws an exception. A throw statement with an expression throws the exception produced by evaluating the expression. A throw statement with no expression is used in the catch block. It re-throws the exception that is currently being handled by the catch block.

Consider the following program:

int a, b = 0 ;
Console.WriteLine( "My program starts" ) ;
try
{
 a = 10 / b;
}
catch ( Exception e)
{
 throw 
}
finally
{
 Console.WriteLine ( "finally" ) ; 
}
The output here is:

My program starts
Exception occurred: System.DivideByZeroException: Attempted to divide by zero.at ConsoleApplication4.Class1.Main(String[] args) in d:\programs\consoleapplication4\class1.cs:line 55
finally

This shows that the exception is re-thrown. Whatever is written in finally is executed and the program terminates. Note again that "Remaining program" is not printed.

You might also like...

Comments

About the author

Kamran Shakil Pakistan

I am 22 male. BS(Computer Science), MCSE, Brainbench certifed. Member of .NET Open source, Mono Project. E-author on various websites, including www.dotnetextreme.com, www.csharphelp.com and so...

Interested in writing for us? Find out more.

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“The difference between theory and practice is smaller in theory than in practice.”