First let’s try to understand this .NET interview question. In other words what is the difference between :-
For this interview question many people answer, “Second one will cause compile error”. But both the codes will work properly. Actually from .NET 2.0 there is no difference. But in the initial versions of .NET i.e. prior 2.0 some of the exceptions thrown by some COM components did not translate to “Exception” compatible object.
From .NET 2.0 both code will execute properly and there is no difference between them internally. Both catches will handle all kind of exceptions.
After 2.0 a catch which does have any code written in it gives a warning as shown below. So many developers mark this as a difference.
But you can always overcome this issue by not putting a variable as shown in the below code.
This question is taken from the book .NET interview questions with answers book written by Shivprasad koirala.
Connected to the above exception handling interview question one more interview question which is making round is What is the difference between throw and throw ex ?. Below is a simple video for the same.