2 sinat 33415638 sinat_33415638 于 2016.01.27 11:35 提问

如何再一个全局变量里捕获异常

static {
try {
public static FileOutputStream fileOut = new FileOutputStream("D:/输出/" + fileName + "_main" + ".xlsx");
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
我这么写 提示 变量 fileOut 的修饰符不合法;只允许使用“终态"

不写trycatch又提示 未处理的异常类型 FileNotFoundException

2个回答

a8761087
a8761087   Rxr 2016.01.27 11:50
已采纳
和你try内部的无关。   FileNotFoundException 是new FileOutputStream 必须要捕获的异常。 提示你 变量 fileOut 的修饰符不合法的原因是因为你在static块中。方法内部变量是不能有访问权限修饰符的。也不允许static关键字,因为你这么方法内部创建的变量只在内部能使用。

a8761087
a8761087 别忘了采纳啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
接近 2 年之前 回复
sinat_33415638
sinat_33415638 懂了,谢谢
接近 2 年之前 回复
a8761087
a8761087 回复GrowingDarker: 你给init方法加个参数。把方法里的"sss"替换成你传的参数就行了
接近 2 年之前 回复
a8761087
a8761087 回复sinat_33415638: public FileOutputStream s = init(); private FileOutputStream init(){ FileOutputStream s = null; try { s = new FileOutputStream("sss"); } catch (FileNotFoundException e) { } return s; }
接近 2 年之前 回复
sinat_33415638
sinat_33415638 这样我在方法外面的fileOut赋值就是null了,我想让fileOut的赋值在我的方法外使用该怎么做
接近 2 年之前 回复
sinat_33415638
sinat_33415638 这样我在方法外面的fileOut赋值就是null了,我想让fileOut的赋值在我的方法外使用该怎么做
接近 2 年之前 回复
a8761087
a8761087 你要是想让变量fileOut全局使用。可以在全局中定义FileOutputStream fileOut = null; 然后在方法内部再fileOut = new FileOutputStream("D:/输出/" + fileName + "_main" + ".xlsx");
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.01.27 11:40

变量前增加一个关键字:final 试试

sinat_33415638
sinat_33415638 还是提示变量 fileOut 的修饰符不合法;只允许使用“终态"
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!