我从.xlsx文件读取数据时遇到问题,因为catch(InvalidFormatException e)返回异常的错误为“ InvalidFormatException的Unreachable catch块。永远不会从try语句主体中抛出此异常”
我使用了我认为有必要的openxml4j导入
public static Object[][] getTestData(String sheetname) {
FileInputStream file = null;
try {
file = new FileInputStream(TEST_DATA_SHEET_PATH);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
book = WorkbookFactory.create(file);
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
预计InvalidFormatException应该没有错误,并且.xlsx文件中的数据应该为红色
答案 0 :(得分:1)
try {
book = WorkbookFactory.create(file);
} catch (InvalidFormatException e) {
e.printStackTrace();
}
此try块中的代码不会引发InvalidFormatException
。这就是为什么您收到错误消息的原因。
也许您打算在其他地方使用该catch块。
来自文档:
这是方法签名:
public static Workbook create(java.io.File file)
throws java.io.IOException,
EncryptedDocumentException
从上面可以看到,此方法不会引发任何InvalidFormatException
。
答案 1 :(得分:0)
如果IDE无法看到或理解给定代码段中引发了特定(InvalidFormatException
)异常,则会发生这种情况。
您可以通过加入try块来简单地解决此问题:
try {
book = WorkbookFactory.create(file);
} catch (Exception e) {
e.printStackTrace();
}
使用这种方法,如果错误处理允许,您还可以像这样清理并加入代码:
try {
file = new FileInputStream(TEST_DATA_SHEET_PATH);
book = WorkbookFactory.create(file);
} catch (Exception e) {
e.printStackTrace();
}