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.
Comments