调试时,null指针(java.io.File)异常消失

时间:2012-10-12 12:52:46

标签: java debugging file-io

我有一个应用程序会抛出此错误(仅在xlsx文件中发生):

java.lang.NullPointerException
at java.io.File.<init>(File.java:222)
at de.mpicbg.tds.core.ExcelLayout.openWorkbook(ExcelLayout.java:75)

方法'openWorkbook'如下所示:

    private void openWorkbook() throws IOException {
    File excelFile = new File(fileName);

    timestamp = excelFile.lastModified();

    // open excel file
    if (fileName.endsWith(".xlsx")) {
        InputStream excelStream = new BufferedInputStream(new FileInputStream(excelFile));
        this.workbook = new XSSFWorkbook((excelStream));

    } else {
        this.workbook = new HSSFWorkbook(new POIFSFileSystem(new FileInputStream(excelFile)));
    }
}

如果我在调试模式下执行所有操作,一切都会顺利进行,并且不会显示错误消息。我对此行为没有任何解释,也不知道如何修复它。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

错误消息显示您的fileNamenull

如果在调试时无法重现,可以在方法开头添加日志消息。

System.out.println("The fileName is `" + fileName+"`");

我建议您使用参数,而不是使用可能设置或未设置的字段。

private void openWorkbook(String fileName) throws IOException {
    assert fileName != null;