Distinguish between catch with parameter and catch without parameter?
First let’s try to understand this question: -
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: -
See the following on exception error handling: -