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

后端 未结 28 2644
时光说笑
时光说笑 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

    The variables are block level and restricted to that Try or Catch block. Similar to defining a variable in an if statement. Think of this situation.

    try {    
        fileOpen("no real file Name");    
        String s = "GO TROJANS"; 
    } catch (Exception) {   
        print(s); 
    }
    

    The String would never be declared, so it can't be depended upon.

提交回复
热议问题