问题描述
- 缺省构造函数不能处理隐式超构造函数抛出的异常类型 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。必须定义显式构造函数
解决方案
public FileInputStream(String name) throws FileNotFoundException { this(name != null ? new File(name) : null); }
第一行它报的是FileNotFoundException
这个没有错误啊
你的流打开了是不是没有关闭阿
解决方案二:
再次确认下:
你这个方法应该没有问题
那么可能是 你定义的这个方法被谁调用了
getNum这个方法抛出了IOException
调用的地方是不是不能有这个IOException阿
我怀疑你在哪个构造函数中调用这个方法了
解决方案三:
那你这个 lastNum又在哪里用了。
缺省的构造函数我觉得是你自己写的这个类的
察看一下调用链,自己的构造器里面有没有用到这个调用链
解决方案四:
解决了 我这么写就没事了
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;
}
}
解决方案五:
首先恭喜下
从解决方法看应该是跑出的异常导致的.
调用这个int lastnum = getNum(source.getProperty(""fileName""));
的函数可能对外的声名是没有异常的