Why aren't variables declared in “try” in scope in “catch” or “finally”?

后端 未结 28 2666
时光说笑
时光说笑 2020-11-28 03:44

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

28条回答
  •  感动是毒
    2020-11-28 04:04

    What if the exception is thrown in some code which is above the declaration of the variable. Which means, the declaration itself was not happend in this case.

    try {
    
           //doSomeWork // Exception is thrown in this line. 
           String s;
           //doRestOfTheWork
    
    } catch (Exception) {
            //Use s;//Problem here
    } finally {
            //Use s;//Problem here
    }
    

提交回复
热议问题