【问题标题】:Exception not caught in java programjava程序中未捕获异常
【发布时间】:2014-03-22 12:50:13
【问题描述】:

我正在运行基于 Eclipse 的 Java 应用程序,但无法捕获异常。我正在尝试读取一个 excel 文件并获取其内容。下面是示例代码该程序能够识别该 excel 文件,并且当程序尝试创建一个新的 xssfworkbook = new XSSFWorkbook(file); 对象时执行停止。

FileInputStream file = null;
    XSSFWorkbook xssfworkbook = null;
    try
    {
        //TODO Read file from Actual Path
        file = new FileInputStream("D:\\Import_Model_1.xlsx"); 
        xssfworkbook = new XSSFWorkbook(file);
    }
    catch(IOException e)
    {
        // TODO Handle the IO Exception with Logs, and User Friendly Message to User
        e.printStackTrace();
    }
    catch( Exception e)
    {
        e.printStackTrace() ;
    }

程序的执行在没有说明原因的情况下突然停止。我在类路径中有所有必需的 jar。但无法捕捉到异常。非常感谢您对此的任何帮助。

【问题讨论】:

  • 可以放stacktrace吗?
  • 也许它没有被异常实例停止?您是否尝试过捕捉 Throwable?
  • 您确定您的应用程序意外停止了吗?有没有可能它跑到最后什么也不打印?
  • 一个可能的原因是 XLS 文件正在被任何其他应用程序使用/打开。关闭它,它应该可以工作了。
  • 大家好,感谢您的即时回复。我试图捕捉 throwable 并得到以下异常 java.lang.NoClassDefFoundError: org/apache/poi/xssf/usermodel/XSSFWorkbook。但是 Poi jar 在类路径中仍然可用。我不确定为什么它无法识别 jar 文件。

标签: java exception-handling runtime


【解决方案1】:

尝试使用 maven 或其他方式正确设置类路径。我猜问题不是异常

【讨论】:

  • 怎么会是classpath 的问题?如果是这样,IDE 可能会对此提出投诉。