Java中的一个奇怪的错误终于抓住了



我正在使用JODConverter将.xls和.ppt转换为.pdf格式。为此,我有类似的代码

try{
    //do something
    System.out.println("connecting to open office");
    OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
    System.out.println("connection object created");
    connection.connect();
    System.out.println("connection to open office successful");
    //do something
    if(!successful)
      throw new FileNotFoundException();
}catch(Exception e){
   System.out.println("hello here");
   System.out.println("Caught Exception while converting to PDF ");
   LOGGER.error("Error in converting media" + e.getMessage());
   throw new MediaConversionFailedException();
}finally{
   decode_pdf.closePdfFile();
   System.out.println("coming in finally");
  //do something here
}

我的输出:

connecting to open office
connection object created
coming in finally

p.S.返回类型的方法是void

这怎么可能?即使connection.connect()中有一些问题,它也会出现在catch块中混淆

可能引发了错误。这仍然会导致try块未完成,catchException块被忽略,finally块被调用。

尝试捕获Throwable,并观察stacktrace,可能conection.connect()抛出了Error(或其他扩展Throwable的自定义类)。

如果发生error类型的错误,或者更糟的是,发生Throwable类型的错误时,Exception的catch处理程序将不会启动。是否有可能出现某种VM错误、OOM或堆栈溢出?

如果是这样,这将说明您报告的输出。

根据OpenOfficeConnection接口的实现,可能会出现各种类型的可丢弃文件。其中一个可丢弃的可能不扩展java.lang.Exception。尝试捕获java.lang.Throwable而不是

相关内容

  • 没有找到相关文章

最新更新