In C# and in Java (and possibly other languages as well), variables declared in a \"try\" block are not in scope in the corresponding \"catch\" or \"finally\" blocks. For e
Because the try block and the catch block are 2 different blocks.
In the following code, would you expect s defined in block A be visible in block B?
{ // block A string s = "dude"; } { // block B Console.Out.WriteLine(s); // or printf or whatever }