在使用try-catch是报错的问题求大神解答
问题是这样的比如我在使用IO中的类时如果我这样写try{
InputStream input= new FileInputStream(file1)
OutputStream output = new FileOutputStream(file2);
}
catch(Exception e){
e.printStackTrace();
}
然后调用input.read()和output.write()时eclipse会报错提示input cannot be resolved和output cannot be resolved;
但是这样写
InputStream inputStream = null;
OutputStream outputStream = null;
try{
inputStream = new FileInputStream(file1);
outputStream = new FileOutputStream(file2);
}
catch(Exception e){
e.printStackTrace();
}
就没有问题了,我的英语不太好看英文提示比较吃力,所以求大神解释一下问题出在什么地方
[ 本帖最后由 wahn1992 于 2013-7-13 17:07 编辑 ]
----------------解决方案--------------------------------------------------------
你的第一种方式,变量都被定义到try代码块里了,外面怎么能访问的到呢?
----------------解决方案--------------------------------------------------------
貌似没有变量初始化吧!
----------------解决方案--------------------------------------------------------
回复 3楼 bibikao19860
是啊。 ----------------解决方案--------------------------------------------------------
你定义到try里面的变量就跟第一在if里面的变量一样,有可能访问不到,所以要先初始化
----------------解决方案--------------------------------------------------------
建议楼主重新复习一下,变量的生命周期和作用域的相关知识。
----------------解决方案--------------------------------------------------------
额,难道楼主不是在TRY...CATCH块中调用的read/wirte吗?....
----------------解决方案--------------------------------------------------------
可以结贴了
----------------解决方案--------------------------------------------------------