2 sinat 33415638 sinat_33415638 于 2016.02.01 10:22 提问

缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

int lastnum = getNum(source.getProperty("fileName"));
public static int getNum(String Filename) throws IOException {

    InputStream myxls;
    myxls = new FileInputStream(Filename);
    sr = new XSSFWorkbook(myxls);
    XSSFSheet sheet = sr.getSheetAt(0);// 第一个工作表
    return sheet.getLastRowNum();// 获取第一个工作表的行数
}

第一行报错:缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数

5个回答

fk002008
fk002008   2016.02.01 12:17
已采纳
    public FileInputStream(String name) throws FileNotFoundException {
        this(name != null ? new File(name) : null);
    }

第一行它报的是FileNotFoundException
这个没有错误啊
你的流打开了是不是没有关闭阿

sinat_33415638
sinat_33415638 关了也没用
接近 2 年之前 回复
sinat_33415638
sinat_33415638 回复sinat_33415638: 关了也没用
接近 2 年之前 回复
sinat_33415638
sinat_33415638 我这个编译就不通过
接近 2 年之前 回复
fk002008
fk002008   2016.02.01 13:48

再次确认下:
你这个方法应该没有问题
那么可能是 你定义的这个方法被谁调用了

getNum这个方法抛出了IOException

调用的地方是不是不能有这个IOException阿
我怀疑你在哪个构造函数中调用这个方法了

sinat_33415638
sinat_33415638 没有 只有lastNum用这个方法了
接近 2 年之前 回复
fk002008
fk002008   2016.02.01 14:55

那你这个 lastNum又在哪里用了。
缺省的构造函数我觉得是你自己写的这个类的

察看一下调用链,自己的构造器里面有没有用到这个调用链

sinat_33415638
sinat_33415638 解决了 我这么写就没事了
接近 2 年之前 回复
sinat_33415638
sinat_33415638 解决了 我这么写就没事了
接近 2 年之前 回复
sinat_33415638
sinat_33415638 解决了 我这么写就没事了
接近 2 年之前 回复
sinat_33415638
sinat_33415638 解决了 我这么写就没事了
接近 2 年之前 回复
sinat_33415638
sinat_33415638   2016.02.01 14:59

解决了 我这么写就没事了
int lastnum = getNum(source.getProperty("fileName"));
public static int getNum(String Filename) {
try {
InputStream myxls;
myxls = new FileInputStream(Filename);
sr = new XSSFWorkbook(myxls);
XSSFSheet sheet = sr.getSheetAt(0);// 第一个工作表
return sheet.getLastRowNum();// 获取第一个工作表的行数
} catch (IOException e) {
// TODO: handle exception
return 0;
}
}

fk002008
fk002008   2016.02.01 15:04

首先恭喜下
从解决方法看应该是跑出的异常导致的.

调用这个int lastnum = getNum(source.getProperty("fileName"));

的函数可能对外的声名是没有异常的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!