java中try{}catch{}语句为什么把定义管道语句写在try内就出错,先外定义就正确

2024-12-03 23:12:49
推荐回答(3个)
回答1:

那就是Java变量作用域的问题了。Java基本上{}算一个作用域,你把in定义在try里面那么这个in只在这个try里面有效。放在外面的话,就相当于全局变量的意思了

回答2:

一个程序块定义了一个作用域
你在try{}中定义的FileInputStream只存在t当前try块中,所以在第二个try中他未定义,所以报错

回答3:

作用域问题。in 这个变量是在第一个try catch里定义,它的作用域只在try 包围的块内。在别处就无法识别,因此会提示 in cannot be resolved (in变量无法解析)。